NPOI – 从模板文件创build保存工作簿
这是我第二次处理NPOI。 我从这样的模板excel文件创build工作簿。
string dldir = AppDomain.CurrentDomain.BaseDirectory + "Download\\excel\\"; string uldir = AppDomain.CurrentDomain.BaseDirectory + "Upload\\default_export_file\\"; string filename = DateTime.Now.ToString("yyyy-Md") + "_" + user.first_name + "_" + query.default_export_filename; System.IO.File.Delete(Path.Combine(dldir, filename)); //System.IO.File.Copy(Path.Combine(uldir, query.default_export_filename), Path.Combine(dldir, filename)); HSSFWorkbook hssfwb; using (FileStream file = new FileStream(Path.Combine(uldir, query.default_export_filename), FileMode.Open, FileAccess.ReadWrite)) { hssfwb = new HSSFWorkbook(file); } MemoryStream mstream = new MemoryStream(); hssfwb.Write(mstream); FileStream xfile = new FileStream(Path.Combine(dldir, filename), FileMode.Create, System.IO.FileAccess.Write); byte[] bytes = new byte[mstream.Length]; mstream.Read(bytes, 0, (int)mstream.Length); xfile.Write(bytes, 0, bytes.Length); xfile.Close(); mstream.Close();
但是当我检查创build的文件。 它什么也没有包含 大小是正确的。 但内容只是空白。 而且我也无法在MS Excel中打开它。 我重复并追踪了代码,但似乎无法find是什么原因造成空白。
任何人都知道为什么会这样
仅供参考:我正在使用VS 2010,从NuGet Gallery安装的ASP.Net MVC 4和NPOI 1.2.5
这个怎么样:
MemoryStream mstream = new MemoryStream(); hssfwb.Write(mstream); FileStream xfile = new FileStream(Path.Combine(dldir, filename), FileMode.Create, System.IO.FileAccess.Write); byte[] bytes = new byte[mstream.Length]; mstream.Read(bytes, 0, (int)mstream.Length); xfile.Write(bytes, 0, bytes.Length); xfile.Close(); mstream.Close();
改性:
FileStream xfile = new FileStream(Path.Combine(dldir, filename), FileMode.Create, System.IO.FileAccess.Write); hssfwb.Write(xfile); xfile.Close();
- 不可读的Excel内容Epplus
- ASP.NET创buildExcel数据透视表
- 导出数据到excel文件2003,2007及以上
- asp.net导出到Excel UTF-8
- 如何使用asp.net和c#stream式传输Excel 2007或Word 2007文件
- 在Microsoft Excel中打开select并从ASP.NET Web窗体应用程序发回到服务器。 服务器上没有SharePoint
- 我们如何只提取具有第一列作为指定约束(string)使用OLEDB在ASP.NET中的特定行?
- 为什么systemprofile需要Desktop文件夹来打开excel文件
- 使用EPPlus将文本添加到Excel电子表格中的合并单元格