特定のディレクトリのExcelスプレッドシートをタブ付きのExcelブックにマージするアプリケーションを作成しようとしています。私はVS Community 2015にしかアクセスできないので、VSTOは問題ありません。代わりにInteropとNPOI 2.1.3.1を使用しています。NPOIコピーシートを使用してExcelワークシートをコピーする。コピーは常に空白です
ここに私のコードです:
files = Directory.GetFiles(sourcePath);
XSSFWorkbook test = new XSSFWorkbook();
try
{
string fPath = files[0];
FileStream fs2 = new FileStream(fPath, FileMode.Open, FileAccess.ReadWrite);
XSSFWorkbook myBook = new XSSFWorkbook(fs2);
test.CreateSheet(myBook.GetSheetName(0));
var sheet1 = myBook.GetSheetAt(0).CopySheet(test.GetSheetName(0));
test.Write(new FileStream("testFile.xlsx", FileMode.Create, FileAccess.ReadWrite));
}
catch { }
私は最初のワークシート上のすべてをコピーし、ちょうどGetFiles機能によって返された最初のファイルを取得し、ここでは、派手な何かをしようとすると、新しいワークシートを作成していませんよコピーされたものを新しいワークブックの「テスト」に追加します。出力ファイル "testFile.xlsx"のsheet1がソースワークシートの固有のシート名を取得しているため、ソースファイルが見つかっていることがわかります。これは "Sheet1"ではありません。しかし、シートの残りの部分は空白になり、私は理由を知らない。
これは違いがある場合は、Excel 2016に対してこれを使用しています。
なぜInteropとNPOIの両方を使用していますか? – mason