自在猫先生 2022-07-29 09:13 采纳率: 66%
浏览 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 求苹果推信imessage批量推信技术
    • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
    • ¥15 利用加权最小二乘法求亚马逊各类商品的价格指标?怎么求?
    • ¥15 c++ word自动化,为什么可用接口是空的?
    • ¥15 Matlab计算100000*100000的矩阵运算问题:
    • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
    • ¥16 需要完整的这份订单所有的代码,可以加钱
    • ¥15 Stata数据分析请教
    • ¥15 请教如何为VS2022搭建 Debug|win32的openCV环境?
    • ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料