NPOIとの取引は2回目です。このようなテンプレートのExcelファイルからワークブックを作成しています。
string dldir = AppDomain.CurrentDomain.BaseDirectory + "Download\\excel\\";
string uldir = AppDomain.CurrentDomain.BaseDirectory + "Upload\\default_export_file\\";
string filename = DateTime.Now.ToString("yyyy-M-d") + "_" + 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();
しかし、作成されたファイルを確認したところ。何も含まれていません。サイズは正しいです。でも中身はただの白紙。また、MS Excel でも開くことができませんでした。コードを繰り返してトレースしましたが、空白を書き込む原因を見つけることができないようです。
なんでこうなったか誰でもわかる
参考までに: NuGet ギャラリーからインストールされた VS 2010、ASP.Net MVC 4、および NPOI 1.2.5 を使用しています。