NPOI 导入导出和Excel版本,错误文件扩展名和文件的格式不匹配 |
您所在的位置:网站首页 › excel版本不兼容导致日期格式不对怎么解决 › NPOI 导入导出和Excel版本,错误文件扩展名和文件的格式不匹配 |
读取时可以自动判断Excel版本 IWorkbook workbook = NPOI.SS.UserModel.WorkbookFactory.Create(fs);调用这个方法,内部自动判断Excel的版本 导出时: 2003之前的版本是 IWorkbook workbook = new HSSFWorkbook(); 2003版本ContentType是application/vnd.ms-excel 2003之后的版本是 Workbook workbook = new XSSFWorkbook();//2007版本ContentType是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
如果写错了,使用office打开会提示,文件扩展名和文件的格式不匹配,但使用WPS打开不会提示。
发现“中转费2018-10-14--20181016140243.xlsx”中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。解决方法参考 核心是 MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Close(); ms.Dispose(); System.Web.HttpContext.Current.Response.End(); public static void ExportByWeb(List list, string strHeaderText, string strFileName, Dictionary FieldNames) { ExportToFile temp = new ExportToFile(); HttpContext curContext = HttpContext.Current; curContext.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strHeaderText + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx", Encoding.UTF8)); MemoryStream ms = temp.Export(list, strHeaderText, FieldNames); // new AppException("导出文件开始2" + strHeaderText + DateTime.Now + "导出数据量:" + list.Count); if (ms != null) { curContext.Response.BinaryWrite(ms.ToArray()); } // new AppException("导出文件结束2" + strHeaderText + DateTime.Now + "导出数据量:" + list.Count); ms.Close(); ms.Dispose(); curContext.Response.End(); }
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |