Convertir un fichier Excel en PDF à l’aide d’Excel à partir de .NET
Environnement d’exploitation
- Visual Studio
-
- Visual Studio 2022
- .FILET
-
- .NET 6.0
- Windows
-
- Fenêtres 11
- Exceller
-
- Microsoft 365 (en anglais)
Conditions préalables
- Windows
-
- L’une des versions
- Exceller
-
- L’une des versions
Étapes pour convertir d’un fichier Excel en fichier PDF
Ce programme permet de manipuler Excel à partir d’un programme Microsoft.Office.Interop.Excel
.NET via COM et de sortir le fichier Excel ouvert au format PDF.
Par conséquent, Excel doit être installé sur Windows pour fonctionner. COM est un mécanisme Windows, il ne fonctionne donc pas sur Mac.
Lorsque vous créez un projet dans Visual Studio, il peut s’agir de tout ce qui s’exécute sur le bureau Windows. Dans ce cas, nous le créons en tant qu’application console.
Une fois que vous avez créé le projet, parcourez la bibliothèque pour utiliser Excel. La méthode présentée ici est construite d’une manière qui dépend de la version d’Excel installée pour faciliter la visualisation du programme. Si vous souhaitez l’exécuter indépendamment de la version d’Excel, modifiez-le selon la méthode liée ci-dessous. C’est ainsi que nous construisons les programmes que nous distribuons.
Cliquez avec le bouton droit sur Dépendances et sélectionnez Ajouter une référence COM.
Si Excel est installé dans l’environnement de développement, tapez « » dans le champ de recherche dans le coin supérieur droit, alors cochez-le Microsoft Excel XX.0 Object Library
et cliquez sur le Excel
bouton « OK ».
La version affichée dépend de la version d’Excel installée.
Vous disposez d’un fichier Excel prêt à être importé. La façon dont il est exporté au format PDF est la même que lorsque vous le sortez manuellement au format PDF dans Excel, veuillez donc le vérifier avant de l’incorporer en tant qu’application.
Entrez le code suivant à l’endroit où vous souhaitez qu’il soit traité.
// 実行プログラムの場所にある 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);
}
Le fait est que Workbook.ExportAsFixedFormat
la méthode a déjà une fonction d’exportation, il vous suffit donc de l’appeler.
Exécutez-le pour voir si le fichier PDF est sorti.