5

EPPLUS ライブラリを使用して Excel からデータを読み取り、別のファイルを作成しています。残念ながら、.XLSM 拡張子ファイルはサポートされていません。EPPLUS でファイルを読み取る目的で、.XLSM ファイルを .XLSX ファイルに変換する良い方法はありますか?

(私のコードはすべてEPPLUSを使用してすでに書かれているので、読書にEPPLUSを使用するといいでしょう:))

4

3 に答える 3

10

これを行うには、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ファイルで同じであるため、これは機能します。ChangeDocumentTypeMacroEnabledWorkbookWorkbook

于 2012-07-03T16:39:30.877 に答える