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

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日

悬赏问题

  • ¥50 gki vendor hook
  • ¥15 centos7中sudo命令无法使用
  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联