问题遇到的现象和发生背景
代码没有抛出异常,但是数据没有写入到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对应的表格中