0

我有带有宏的XLS文件,要将其转换为 OpenXML 格式,我正在使用Spire.XLS并且能够将文件转换为XLSM格式。然后使用OpenXML SDKXLSM文件转换为XLSX格式,如下所示:

string lstrOpenXMLXLSMIPDTemplatePath = pstrIPDTemplatePath.Replace(".xls", ".xlsm");

Spire.Xls.Workbook lobjDSTemplateWorkbook = new Spire.Xls.Workbook();
lobjDSTemplateWorkbook.DisableMacrosStart = false;
lobjDSTemplateWorkbook.LoadFromFile(pstrIPDTemplatePath);
lobjDSTemplateWorkbook.SaveToFile(lstrOpenXMLXLSMIPDTemplatePath, Spire.Xls.ExcelVersion.Version2013);

pstrOpenXMLIPDTemplatePath = lstrOpenXMLXLSMIPDTemplatePath.Replace(".xlsm", ".xlsx");

using (var XLSMStream = File.OpenRead(lstrOpenXMLXLSMIPDTemplatePath))
using (var XLSXStream = new MemoryStream())
{
    XLSMStream.CopyTo(XLSXStream);
    using (var doc = SpreadsheetDocument.Open(XLSXStream, true))
    {
        doc.DeletePartsRecursivelyOfType<VbaDataPart>();
        doc.DeletePartsRecursivelyOfType<VbaProjectPart>();
        doc.ChangeDocumentType(DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook);
    }
    File.WriteAllBytes(pstrOpenXMLIPDTemplatePath, XLSXStream.ToArray());
}

是否有任何使用Spire.XLS Dll其他方式将文件直接转换为XLSX格式的方法。

4

1 回答 1

0

是的,您可以使用 Spire.XLS dll 直接使用以下代码将 XLS 转换为 XLSX 格式:

Workbook workbook = new Workbook();

workbook.LoadFromFile("input.xls");

//Set the version to Excel 2007 or above
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2007);
于 2018-10-09T02:11:32.977 回答