Я попытался преобразовать excel
в PDF
, и я смог его преобразовать. но при открытии этого файла я получаю ошибку, как показано на рисунке.
Я ссылаюсь на эту ссылку Как конвертировать файлы Word в PDF программно? из этой ссылки Я мог бы решить проблему преобразования Word в PDF. где мне не нужно устанавливать офис на сервере и то же самое, что я хочу сделать для файлов excel
и PPT
.
Мой код:
// Create a new Microsoft Excel application object
Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();
// C# doesn't have optional arguments so we'll need a dummy value
object oMissing = System.Reflection.Missing.Value;
excelApplication.Visible = false;
excelApplication.ScreenUpdating = false;
FileInfo ExcelFile = new FileInfo(sourcePath);
// Cast as Object for Excel Open method
Object filename = (Object)ExcelFile.FullName;
// Use the dummy value as a placeholder for optional arguments
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApplication.Workbooks.Open(ExcelFile.FullName, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
object outputFileName = ExcelFile.FullName.Replace(Path.GetFileName(ExcelFile.FullName), Path.GetFileName(targetPath));
object fileFormat = WdSaveFormat.wdFormatPDF;
// Save document into PDF Format
//excelWorkbook.SaveAs(outputFileName);
excelWorkbook.SaveAs(outputFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
// Close the Excel Workbook, but leave the Word application open.
// excelWorkbook has to be cast to type _Document so that it will find the
// correct Close method.
object saveChanges = WdSaveOptions.wdDoNotSaveChanges;
((Microsoft.Office.Interop.Excel.Workbook)excelWorkbook).Close();
excelWorkbook = null;
// Excel has to be cast to type _Application so that it will find
// the correct Quit method.
((Microsoft.Office.Interop.Excel._Application)excelApplication).Quit();
excelWorkbook = null;
Примечание
Я не хочу использовать встроенные функции экспорта, чтобы выполнить это. как следует, у меня уже есть код для него. Это рабочий код для преобразования excel в pdf.
Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = null;
excelWorkbook = excelApplication.Workbooks.Open(sourcePath);
excelWorkbook.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, targetPath);
excelWorkbook.Close();
excelApplication.Quit();
excelApplication = null;
Пожалуйста, дайте мне знать, где я ошибаюсь.