Pretvorite datoteko Excel v PDF z Excelom iz ogrodja .NET
Delovno okolje
- Visual Studio
-
- Visual Studio 2022
- .MREŽA
-
- .NET 6.0
- Windows
-
- Windows 11
- Excel
-
- Microsoft 365
Predpogoji
- Windows
-
- Ena od različic
- Excel
-
- Ena od različic
Koraki za pretvorbo iz Excelove datoteke v datoteko PDF
Ta program uporablja za upravljanje Excela iz programa Microsoft.Office.Interop.Excel
.NET prek COM in izhod odprte datoteke Excel kot PDF.
Zato mora biti Excel nameščen v sistemu Windows, če ga želite zagnati. COM je mehanizem Windows, zato ne deluje v računalnikih Mac.
Ko ustvarite projekt v programu Visual Studio, je to lahko vse, kar se izvaja na namizju sistema Windows. V tem primeru jo ustvarjamo kot konzolno aplikacijo.
Ko ustvarite projekt, prebrskajte knjižnico in poiščite Excel v knjižnici. Tukaj predstavljena metoda je zgrajena tako, da je odvisna od različice Excela, ki je nameščena za lažji ogled programa. Če ga želite zagnati neodvisno od različice Excela, ga spremenite v skladu s spodnjo povezavo. Tako gradimo programe, ki jih distribuiramo.
Z desno tipko miške kliknite Odvisnosti in izberite Dodaj sklic COM.
Če je Excel nameščen v razvojnem okolju, v iskalno polje v Excel
zgornjem desnem kotu vnesite »«, zato ga preverite Microsoft Excel XX.0 Object Library
in kliknite gumb »V redu«.
Prikazana različica je odvisna od nameščene različice Excela.
Excelovo datoteko imate pripravljeno za uvoz. Način izhoda v PDF je enak kot pri ročnem izhodu v PDF v Excelu, zato ga preverite, preden ga vključite kot aplikacijo.
Vnesite naslednjo kodo, kjer jo želite obdelati.
// 実行プログラムの場所にある 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);
}
Bistvo je, da metoda že ima funkcijo izvoza, Workbook.ExportAsFixedFormat
zato jo morate samo poklicati.
Zaženite ga, da preverite, ali je datoteka PDF izhodna.