自在猫先生 2022-07-29 09:13 采纳率: 62.9%
浏览 70
已结题

ASP.NET 查询数据库数据并写入到excel对应的表格中

问题遇到的现象和发生背景

代码没有抛出异常,但是数据没有写入到excel表格中

问题相关代码,请勿粘贴截图
 string fileDir = System.Web.HttpContext.Current.Server.MapPath("~/UI/BQ/Temp/212车型整车Audit评审报告.xlsx");
                //string fileDir = System.Web.HttpContext.Current.Server.MapPath("~/UI/BQ/Temp/测试报表.xlsx");
                
                FileStream file = new FileStream(fileDir, FileMode.Open, FileAccess.Read);
                //创建HSSFWorkbook对象
                XSSFWorkbook hssfworkbook = new XSSFWorkbook(file);
                //创建HSSFSheet对象
                NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0);
                //ISheet sheet = hssfworkbook.GetSheet("sheet1");
                System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
                MemoryStream ms = new MemoryStream();
                DataTable dataTable;
                string sql=“sql语句”;
                CustomSqlSection customSqlSection = Gateway.Default.FromCustomSql(sql);
                dataTable = customSqlSection.ToDataSet().Tables[0];

                IRow row = sheet.CreateRow(0);
                for (int i = 0; i < dataTable.Columns.Count; i++)
                {
                    ICell cell = row.CreateCell(i);
                    cell.SetCellValue(dataTable.Columns[i].ColumnName);
                }

                //写入数据到excel
                for (int i = 2; i < dataTable.Rows.Count; i++)
                {
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["VIN码"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["部位"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["CAR_TYPE_CODE"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["问题描述"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["图片"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["问题等级"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["责任部门"].ToString());
                    row.GetCell(i).SetCellValue(dataTable.Rows[i - 2]["备注"].ToString());

                }
                //获取地址栏ip地址
                string url = HttpContext.Current.Request.Url.Host;
               
                sheet.ForceFormulaRecalculation = true;  //强制计算Excel中的公式
                hssfworkbook.Write(ms);
                ms.Flush();
                ms.Seek(0, SeekOrigin.Begin);
                string Rstr = fileDir.Substring(fileDir.IndexOf("UI"));
                fileDir = url + ":"+ Rstr;

                //返回URL地址
               return fileDir;
运行结果及报错内容

没有报错 没有异常

我的解答思路和尝试过的方法

修改查询出来的列 起别名,与excel表格中的列对应。

我想要达到的结果

查询出来的数据 并写入excel对应的表格中

img

  • 写回答

1条回答 默认 最新

  • 石岩Maple 2022-07-29 09:21
    关注

    img


    你只创建了一个行,下面对dataTable进行循环的时候也要创建行的,你始终在第一行做循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月29日

悬赏问题

  • ¥15 关于cpci总线的几个问题,有点迷糊
  • ¥15 乳腺癌数据集 相关矩阵 特征选择
  • ¥15 我的游戏账号被盗取,请问我该怎么做
  • ¥15 通关usb3.0.push文件,导致usb频繁断连
  • ¥15 有没有能解决微信公众号,只能实时拍照,没有选择相册上传功能,我不懂任何技术,,有没有给我发个软件就能搞定的方法
  • ¥15 Pythontxt文本可视化
  • ¥15 如何基于Ryu环境下使用scapy包进行数据包构造
  • ¥15 springboot国际化
  • ¥15 搭建QEMU环境运行OP-TEE出现错误
  • ¥15 Minifilter文件保护