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();