Convertir archivo de Excel a PDF usando Excel desde .NET
Entorno operativo
- Visual Studio
-
- Visual Studio 2022
- .RED
-
- .NET 6.0
- Windows
-
- Windows 11
- Sobresalir
-
- Microsoft 365
Prerrequisitos
- Windows
-
- Una de las versiones
- Sobresalir
-
- Una de las versiones
Pasos para convertir de un archivo de Excel a un archivo PDF
Este programa utiliza para manipular Excel desde un programa Microsoft.Office.Interop.Excel
.NET a través de COM y generar el archivo de Excel abierto como PDF.
Por lo tanto, Excel debe estar instalado en Windows para poder ejecutarse. COM es un mecanismo de Windows, por lo que no funciona en Mac.
Al crear un proyecto en Visual Studio, puede ser cualquier cosa que se ejecute en el escritorio de Windows. En este caso, lo estamos creando como una aplicación de consola.
Después de crear el proyecto, examine la biblioteca para usar Excel. El método presentado aquí está construido de una manera que depende de la versión de Excel que esté instalada para facilitar la visualización del programa. Si desea ejecutarlo independientemente de la versión de Excel, modifíquelo de acuerdo con el método vinculado a continuación. Así es como construimos los programas que distribuimos.
Haga clic con el botón secundario en Dependencias y seleccione Agregar referencia COM.
Si Excel está instalado en el entorno de desarrollo, escriba "" en el campo de búsqueda en la Excel
esquina superior derecha, así que márquelo Microsoft Excel XX.0 Object Library
y haga clic en el botón "Aceptar".
La versión que se muestra depende de la versión de Excel que esté instalada.
Tiene un archivo de Excel listo para importar. La forma en que se envía a PDF es la misma que cuando se imprime manualmente a PDF en Excel, así que compruébelo antes de incorporarlo como una aplicación.
Introduzca el siguiente código donde desea que se procese.
// 実行プログラムの場所にある Excel ファイル
var folderPath = Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule?.FileName) ?? "";
var excelFilePath = Path.Combine(folderPath, "Sample.xlsx");
Microsoft.Office.Interop.Excel.Application? excel = null;
Microsoft.Office.Interop.Excel.Workbooks? books = null;
Microsoft.Office.Interop.Excel.Workbook? book = null;
Microsoft.Office.Interop.Excel.Sheets? sheets = null;
try
{
// Excel アプリケーション生成
excel = new Microsoft.Office.Interop.Excel.Application()
{
DisplayAlerts = false, // アラート非表示
Visible = false, // Excel 非表示
};
// ワークブック一覧を参照
books = excel.Workbooks;
// Excel ファイルを開く
book = books.Open(excelFilePath);
// シート一覧参照
sheets = book.Worksheets;
// 全シートを選択
sheets.Select();
// Excel のデータを PDF ファイルとして保存
// Type : xlTypePDF=PDF, xlTypeXPS=XPS
// Filename : 出力ファイル名
// Quality : xlQualityStandard=標準品質, xlqualityminimum=最小限の品質
book.ExportAsFixedFormat(
Type: Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF,
Filename: Path.Combine(folderPath, "Sample.pdf"),
Quality: Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard);
Console.WriteLine("PDF 出力に成功しました。");
}
catch (Exception ex)
{
Console.WriteLine("PDF 出力に失敗しました。");
Console.WriteLine(ex.ToString());
}
finally
{
// Excel を終了させる
if (book != null) book.Close(SaveChanges: false);
if (excel != null) excel.Quit();
// 使用した Excel リソースは全て開放する
if (sheets != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets);
if (book != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
if (books != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(books);
if (excel != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
}
El punto es que el método ya tiene una función de exportación, por lo que Workbook.ExportAsFixedFormat
solo necesita llamarlo.
Ejecútelo para ver si se genera el archivo PDF.