查询数据库做Excel导出、导入操作(上篇 导出)

先说说导出吧,相对来说 ,导入的操作相对简单一些;、

1.首先查出需要导出的数据,查询出来的数据添加到 list列表(因为本人数据有做权限设置,查询相对比较繁琐)

  var fil = QueryPageFilter.Create("ZT_YWYYB").Equal("ID", id);
            var yyb = ServiceAppContext.Instance.DataBaseClassHelper.GetQueryDic(fil);

            List<string> list = new List<string>();
            List<string> list2 = new List<string>();
            var filter = QueryPageFilter.Create("ZT_YYZDB").Equal("SSYY", id).Equal("SFDCZD", true).Equal("SFSC", false);
            var table = ServiceAppContext.Instance.DataBaseClassHelper.GetQueryResultN(filter);
            foreach (var item in table)
            {
                list.Add(item["ZDMC"].ToString());
                list2.Add(item["XSM"].ToString());
            }
            var filter2 = QueryPageFilter.Create(yyb["SSBM"].ToString()).Equal("SFSC", false).ReturnFields(list.ToArray());
            var phg = ServiceAppContext.Instance.DataBaseClassHelper.GetQueryResultN(filter2);

2.  list列表导出做成excel

  XSSFWorkbook workbook = new XSSFWorkbook();
            XSSFSheet sheet = (XSSFSheet)workbook.CreateSheet();

            IRow frow0 = sheet.CreateRow(0);
            foreach (var item in list2)
            {
                for (int i = 0; i < list2.Count; i++)
                {
                    frow0.CreateCell(i).SetCellValue(list2[i]);
                }
            }

            for (var i = 0; i < phg.Length; i++)
            {
                IRow frow1 = sheet.CreateRow(i + 1);
                var item = phg[i];
                for (var j = 0; j < item.Count; j++)
                {
                    var mc = list[j];
                    frow1.CreateCell(j).SetCellValue(item[mc].ToString());
                }
            }

3. 自定义文件位置,关闭文件流

 string saveFileName = string.Format(local + "\\{0}模板.xlsx", yyb["YYBT"]);
            try
            {
                using (FileStream fs = new FileStream(saveFileName, FileMode.Create, FileAccess.Write))
                {
                    workbook.Write(fs);  //写入文件
                    workbook.Close();  //关闭
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值