当前位置:网站首页>ASP.NET 获取数据库的数据并写入到excel表格中

ASP.NET 获取数据库的数据并写入到excel表格中

2022-08-04 00:47:00 CSDN问答

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

从数据库读取出数据,并且把数据写入到excel表格对应的列中

问题相关代码,请勿粘贴截图
 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();                DataTable dataTable;                CustomSqlSection customSqlSection = Gateway.Default.FromCustomSql(sql);                dataTable = customSqlSection.ToDataSet().Tables[0];                                   for (int i = 2; i < dataTable.Rows.Count; i++)                {                    sheet.GetRow(i).GetCell(0).SetCellValue(dataTable.Rows[i - 2]["VIN"].ToString());                    sheet.GetRow(i).GetCell(1).SetCellValue(dataTable.Rows[i - 2]["CAR_TYPE_CODE"].ToString());                    sheet.GetRow(i).GetCell(2).SetCellValue(dataTable.Rows[i - 2]["BAD_DESC"].ToString());                    sheet.GetRow(i).GetCell(3).SetCellValue(dataTable.Rows[i-2]["Model"].ToString());                    sheet.GetRow(i).GetCell(4).SetCellValue(dataTable.Rows[i - 2]["LEVEL_VAL"].ToString());                    sheet.GetRow(i).GetCell(5).SetCellValue(dataTable.Rows[i - 2]["HD2"].ToString());                    sheet.GetRow(i).GetCell(6).SetCellValue(dataTable.Rows[i - 2]["OTHER_DES"].ToString());                                   }
运行结果及报错内容

写入的时候这个循环体内的数据报错: sheet.GetRow(i).GetCell(0).SetCellValue(dataTable.Rows[i - 2]["VIN"].ToString());//
{"EXCEPTION":"文件写入数据异常:未将对象引用设置到对象的实例。"}

img

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

给表格增加列名

img

我想要达到的结果

从数据库读取出数据,并且把数据写入到excel表格对应的列中

原网站

版权声明
本文为[CSDN问答]所创,转载请带上原文链接,感谢
https://ask.csdn.net/questions/7764085