Конвертируйте файл напрямую в формат XLSX, используя Spire.XLS - PullRequest
0 голосов
/ 07 октября 2018

У меня есть XLS файл с макросом , чтобы преобразовать его в формат OpenXML, я использую Spire.XLS и могу конвертировать файл в Формат XLSM .Затем с помощью OpenXML SDK для преобразования XLSM файла в 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());
}

Есть ли какой-либо для преобразования файла непосредственно в XLSX формат с Spire.XLS Dll или другим способом .

1 Ответ

0 голосов
/ 09 октября 2018

Да, вы можете использовать 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);
...