设置导出列

讲解: 在做导出数据的时候除了要经过条件筛选想要的数据,又有的时候只想导出某一列或者多列数据,就需要在原有的导出方法上改动一下。
控制器代码:

public ActionResult ExportFundRunningWaterr(int BankAccountID, string CompanyName, string Remark, string time1, string time2, string checkChinse){

中间省略查询分页数据

string[]checkChinseColumnName=checkChinse.Split(newchar[]{','},StringSplitOptions.RemoveEmptyEntries); //这是将在页面所要导出的某列数据拼接成字符串传回后台,然后通过”,”分割成string数组
//Excel表格的创建步骤
            //第一步:创建Excel对象
            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            //第二步:创建Excel对象的工作簿
            NPOI.SS.UserModel.ISheet sheet = book.CreateSheet();
            //第三步:Excel表头设置
            #region Excel表头设置
            //给sheet添加第一行的头部标题
            NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);//创建行
//通过for循环将生成表头
            for (int i = 0; i < checkChinseColumnName.Length; i++)
            {
                row1.CreateCell(i).SetCellValue(checkChinseColumnName[i]);
            }

            #endregion
            //第四步:for循环给sheet的每行添加数据
            #region 给sheet的每行添加数据
            for (int i = 0; i < list.Count; i++)
            {
                NPOI.SS.UserModel.IRow row = sheet.CreateRow(i + 1);
for循环给sheet的每行添加数据,判断下添加数据的字段名
                for (int j = 0; j < checkChinseColumnName.Length; j++)
                {
                    if (checkChinseColumnName[j] == "记账日期")
                    {
                        row.CreateCell(j).SetCellValue(list[i].ReleaseTimeStr.ToString());
                    }
                    else if (checkChinseColumnName[j] == "银行名称")
                    {
                        row.CreateCell(j).SetCellValue(list[i].AccountName.ToString());
                    }
                    else if (checkChinseColumnName[j] == "银行账号")
                    {
                        row.CreateCell(j).SetCellValue(list[i].Account.ToString());
                    }
                    else if (checkChinseColumnName[j] == "公司名称")
                    {
                        row.CreateCell(j).SetCellValue(list[i].CompanyName.ToString());
                    }

                    else if (checkChinseColumnName[j] == "其他")
                    {
                        row.CreateCell(j).SetCellValue(list[i].Remark.ToString());
                    }
                    else if (checkChinseColumnName[j] == "收支类型")
                    {
                        row.CreateCell(j).SetCellValue(list[i].IncomeType.ToString());
                    }
                    else if (checkChinseColumnName[j] == "收入")
                    {
                        row.CreateCell(j).SetCellValue(list[i].Income.ToString());
                    }
                    else if (checkChinseColumnName[j] == "支出")
                    {
                        row.CreateCell(j).SetCellValue(list[i].Expenditure.ToString());
                    }
                    else if (checkChinseColumnName[j] == "经手人")
                    {
                        row.CreateCell(j).SetCellValue(list[i].ParticularJob.ToString());
                    }
                    else if (checkChinseColumnName[j] == "余额")
                    {
                        row.CreateCell(j).SetCellValue(list[i].Balances.ToString());
                    }

                }
            }
            #endregion
            //把Excel转化为文件流,输出
            MemoryStream BookStream = new MemoryStream();//定义文件流
            book.Write(BookStream);//将工作薄写入文件流
            //输出之前调用Seek(偏移量,游标位置)方法:获取文件流的长度
            BookStream.Seek(0, SeekOrigin.Begin);
            //输出的文件名称
            string filename = "资金流水信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls";
            return File(BookStream, "application/vnd.ms-excel", filename); // 文件类型/文件名称/        }

页面代码:
自定义的导出列样式

<div id="tbLingLiaoModal" style="display: none;overflow:hidden;">
        <div class="col-lg-12" style="margin:16px 0 0 20px">
            <form id="" class="form-horizontal" action="" autocomplete="off">
               <div class="col-lg-12 col-md-12 col-xs-12" style="margin-left:5px;font-size:19px;" id="divblock">
                    <input type="checkbox" name="ColumnName" value="记账日期" /><span>记账日期</span><br />
                    <input type="checkbox" name="ColumnName" value="银行名称" /><span>银行名称</span><br />
                    <input type="checkbox" name="ColumnName" value="银行账号" /><span>银行账号</span><br />
                    <input type="checkbox" name="ColumnName" value="公司名称" /><span>公司名称</span><br />
                    <input type="checkbox" name="ColumnName" value="其他"/><span>其他</span><br />
                    <input type="checkbox" name="ColumnName" value="收支类型" /><span>收支类型</span><br />
                    <input type="checkbox" name="ColumnName" value="收入" /><span>收入</span><br />
                    <input type="checkbox" name="ColumnName" value="支出" /><span>支出</span><br />
                    <input type="checkbox" name="ColumnName" value="经手人" /><span>经手人</span><br />
                    <input type="checkbox" name="ColumnName" value="余额" /><span>余额</span>
                </div>
            </form>

Js代码:
function exportExcel() {
obj = document.getElementsByName(“ColumnName”);
var checkChinse = “”;
for (k in obj) {
if (obj[k].checked)
checkChinse += obj[k].value + “,”;
}
var BankAccountID = $("#BankAccountID").val(); //获取编号文本框内容
var CompanyName = $("#CompanyName").val(); //获取编号文本框内容
var Remark = $("#Remark").val(); //获取编号文本框内容
var time1 = $("#time1").val(); //获取编号文本框内容
var time2 = $("#time2").val(); //获取编号文本框内容
if (BankAccountID == undefined || BankAccountID == null) {
BankAccountID = 0;
}
if (CompanyName == undefined || CompanyName == null) {
CompanyName = “”;
}
if (Remark == undefined || Remark == null) {
Remark = “”;
}
if (time1 == undefined || time1 == null) {
time1 = “”;
}
if (time2 == undefined || time2 == null) {
time2 = “”;
}
//拼接查询条件
var str = ‘BankAccountID=’ + BankAccountID +
‘&CompanyName=’ + CompanyName +
‘&Remark=’ + Remark +
‘&time1=’ + time1 +
‘&time2=’ + time2;
layer.confirm(“是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选需要导出的数据!”, { icon: 3, btn: [‘确定’, ‘取消’] }, function (layerIndex) {
layer.close(layerIndex);//关闭提示
window.open(“ExportFundRunningWaterr?” + str + “&checkChinse=” + checkChinse);
})
}

猜你喜欢

转载自blog.csdn.net/weixin_42047392/article/details/89364663