Převeďte soubor Excel do PDF pomocí Excelu z .NET

Stránky aktualizovány :
Datum vytvoření stránky :

Provozní prostředí

Visual Studio
  • Visual Studio 2022
.SÍŤ
  • .NET 6.0
Windows
  • Systém Windows 11
Vynikat
  • Microsoft 365

Požadavky

Windows
  • Jedna z verzí
Vynikat
  • Jedna z verzí

Kroky k převodu ze souboru Excel do souboru PDF

Tento program slouží k manipulaci s Excelem z programu Microsoft.Office.Interop.Excel .NET přes COM a výstupem otevřeného souboru Excel jako PDF. Aby bylo možné spustit, musí být Excel nainstalován v systému Windows. COM je mechanismus Windows, takže nefunguje na počítačích Mac.

Když vytvoříte projekt v aplikaci Visual Studio, může to být cokoli, co běží na ploše Windows. V tomto případě ji vytváříme jako konzolovou aplikaci.

Po vytvoření projektu procházejte knihovnu pro použití Excelu. Zde uvedená metoda je sestavena způsobem, který závisí na verzi aplikace Excel, která je nainstalována pro snadné zobrazení programu. Pokud jej chcete spustit nezávisle na verzi Excelu, upravte jej podle níže uvedené metody. To je způsob, jakým vytváříme programy, které distribuujeme.

Klikněte pravým tlačítkem na Závislosti a vyberte Přidat odkaz na model COM.

Pokud je ve vývojovém prostředí nainstalován Excel, zadejte do vyhledávacího pole v Excel pravém horním rohu "", takže jej zaškrtněte Microsoft Excel XX.0 Object Library a klikněte na tlačítko "OK". Verze, která se zobrazí, závisí na nainstalované verzi Excelu.

Máte excelový soubor připravený k importu. Způsob výstupu do PDF je stejný, jako když ručně vydáváte do PDF v Excelu, proto jej prosím zkontrolujte, než jej začleníte jako aplikaci.

Zadejte následující kód, kde ho chcete zpracovat.

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

Jde o to, že Workbook.ExportAsFixedFormat metoda již má funkci exportu, takže ji stačí zavolat.

Spusťte jej, abyste zjistili, zda je soubor PDF výstupem.