自在猫先生 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵