Konvertējiet Excel failu PDF formātā, izmantojot Excel no .NET

Lapa atjaunota :
Lapas izveides datums :

Darbības vide

Visual Studio
  • Visual Studio 2022
.NETO
  • .NET 6.0
Windows
  • Operētājsistēmā Windows 11
Excel
  • Microsoft 365

Priekšnoteikumi

Windows
  • Viena no versijām
Excel
  • Viena no versijām

Darbības, kas jāveic, lai pārvērstu no Excel faila par PDF failu

Šī programma izmanto, lai manipulētu ar Excel no .NET programmas Microsoft.Office.Interop.Excel , izmantojot COM, un izvadītu atvērto Excel failu kā PDF failu. Tāpēc, lai palaistu, programmā Windows ir jāinstalē programma Excel. COM ir Windows mehānisms, tāpēc tas nedarbojas Mac datoros.

Veidojot projektu programmā Visual Studio, tas var būt jebkas, kas darbojas Windows darbvirsmā. Šajā gadījumā mēs to veidojam kā konsoles lietotni.

Kad esat izveidojis projektu, pārlūkojiet bibliotēku, lai izmantotu programmu Excel. Šeit izklāstītā metode ir veidota tā, ka tā ir atkarīga no Excel versijas, kas ir instalēta, lai atvieglotu programmas skatīšanu. Ja vēlaties to palaist neatkarīgi no Excel versijas, modificējiet to atbilstoši tālāk norādītajai metodei. Tā mēs veidojam programmas, kuras mēs izplatām.

Ar peles labo pogu noklikšķiniet uz Atkarības un atlasiet Pievienot COM atsauci.

Ja programma Excel ir instalēta izstrādes vidē, meklēšanas laukā Excel augšējā labajā stūrī ierakstiet "", tāpēc pārbaudiet Microsoft Excel XX.0 Object Library to un noklikšķiniet uz pogas "Labi". Parādītā versija ir atkarīga no instalētās Excel versijas.

Jums ir importēšanai gatavs Excel fails. Veids, kā tas tiek izvadīts uz PDF, ir tāds pats kā tad, kad manuāli izvadāt uz PDF failu programmā Excel, tāpēc, lūdzu, pārbaudiet to, pirms iekļaujat to kā lietojumprogrammu.

Ievadiet tālāk norādīto kodu vietā, kur vēlaties to apstrādāt.

// 実行プログラムの場所にある 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);
}

Lieta ir tāda, ka Workbook.ExportAsFixedFormat metodei jau ir eksporta funkcija, tāpēc jums tas vienkārši jāzvana.

Palaidiet to, lai redzētu, vai PDF fails ir izvadīts.