Previesť súbor programu Excel do formátu PDF pomocou programu Excel z platformy .NET

Stránka aktualizovaná :
Dátum vytvorenia strany :

Prevádzkové prostredie

Vizuálne štúdio
  • Visual Studio 2022
.SIEŤ
  • .NET 6.0
Windows
  • Windows 11
Vynikať
  • Microsoft 365

Predpoklady

Windows
  • Jedna z verzií
Vynikať
  • Jedna z verzií

Postup prevodu zo súboru programu Excel na súbor PDF

Tento program používa na manipuláciu s programom Excel z programu Microsoft.Office.Interop.Excel .NET prostredníctvom COM a výstup otvoreného súboru programu Excel ako PDF. Preto musí byť program Excel nainštalovaný v systéme Windows, aby mohol byť spustený. COM je mechanizmus systému Windows, takže na počítačoch Mac nefunguje.

Keď vytvoríte projekt v programe Visual Studio, môže to byť čokoľvek, čo sa spustí na pracovnej ploche systému Windows. V tomto prípade ju vytvárame ako konzolovú aplikáciu.

Po vytvorení projektu vyhľadajte v knižnici pomocou Excelu. Tu uvedená metóda je vytvorená spôsobom, ktorý závisí od verzie programu Excel, ktorá je nainštalovaná na uľahčenie zobrazenia programu. Ak ho chcete spustiť nezávisle od verzie programu Excel, upravte ho podľa nižšie uvedeného postupu. Takto vytvárame programy, ktoré distribuujeme.

Kliknite pravým tlačidlom myši na položku Závislosti a vyberte položku Pridať odkaz na architektúru COM.

Ak je program Excel nainštalovaný vo vývojovom prostredí, zadajte "" do vyhľadávacieho poľa v pravom hornom rohu Excel , takže ho skontrolujte Microsoft Excel XX.0 Object Library a kliknite na tlačidlo "OK". Zobrazená verzia závisí od nainštalovanej verzie programu Excel.

Máte excelový súbor pripravený na import. Spôsob, akým sa vystupuje do PDF, je rovnaký ako pri manuálnom výstupe do PDF v programe Excel, preto ho pred začlenením do aplikácie skontrolujte.

Zadajte nasledujúci kód na miesto, kde ho chcete spracovať.

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

Ide o to, že Workbook.ExportAsFixedFormat metóda už má funkciu exportu, takže ju stačí zavolať.

Spustite ho a zistite, či je súbor PDF výstupný.