EPPLUS ライブラリを使用して Excel からデータを読み取り、別のファイルを作成しています。残念ながら、.XLSM 拡張子ファイルはサポートされていません。EPPLUS でファイルを読み取る目的で、.XLSM ファイルを .XLSX ファイルに変換する良い方法はありますか?
(私のコードはすべてEPPLUSを使用してすでに書かれているので、読書にEPPLUSを使用するといいでしょう:))
これを行うには、Open XMLSDK2.0を使用する必要があります。以下は、私が試したときに機能したコードのスニペットです。
byte[] byteArray = File.ReadAllBytes("C:\\temp\\test.xlsm");
using (MemoryStream stream = new MemoryStream())
{
stream.Write(byteArray, 0, (int)byteArray.Length);
using (SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Open(stream, true))
{
// Change from template type to workbook type
spreadsheetDoc.ChangeDocumentType(SpreadsheetDocumentType.Workbook);
}
File.WriteAllBytes("C:\\temp\\test.xlsx", stream.ToArray());
}
このコードが行うことは、マクロが有効なブックファイルを取得してSpreadsheetDocument
オブジェクトに開くことです。このオブジェクトのタイプはですMacroEnabledWorkbook
が、aとして必要なので、メソッドをWorkbook
呼び出してaから。に変更します。基になるXMLは.xlsmファイルと.xlsxファイルで同じであるため、これは機能します。ChangeDocumentType
MacroEnabledWorkbook
Workbook