Konversi File Excel ke PDF Menggunakan Excel dari .NET

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan operasi

Visual Studio
  • Visual Studio 2022
.JARING
  • .NET 6.0
Windows
  • jendela 11
Melampaui
  • Microsoft 365

Prasyarat

Windows
  • Salah satu versi
Melampaui
  • Salah satu versi

Langkah-langkah untuk mengonversi dari file Excel ke file PDF

Program ini digunakan untuk memanipulasi Excel dari program Microsoft.Office.Interop.Excel .NET melalui COM dan menampilkan file Excel yang dibuka sebagai PDF. Oleh karena itu, Excel harus diinstal pada Windows untuk menjalankan. COM adalah mekanisme Windows, jadi tidak berfungsi di Mac.

Saat Anda membuat proyek di Visual Studio, itu bisa berupa apa saja yang berjalan di desktop Windows. Dalam hal ini, kami membuatnya sebagai aplikasi konsol.

Setelah Anda membuat proyek, telusuri pustaka untuk menggunakan Excel. Metode yang disajikan di sini dibangun dengan cara yang tergantung pada versi Excel yang diinstal untuk kemudahan melihat program. Jika Anda ingin menjalankannya secara independen dari versi Excel, ubah sesuai dengan metode yang ditautkan di bawah ini. Begitulah cara kami membangun program yang kami distribusikan.

Klik kanan Dependensi dan pilih Tambahkan Referensi COM.

Jika Excel diinstal di lingkungan pengembangan, ketik "" di bidang pencarian di Excel sudut kanan atas, jadi periksa Microsoft Excel XX.0 Object Library dan klik tombol "OK". Versi yang ditampilkan tergantung pada versi Excel yang diinstal.

Anda memiliki file Excel yang siap diimpor. Cara outputnya ke PDF sama seperti ketika Anda secara manual output ke PDF di Excel, jadi harap periksa sebelum Anda memasukkannya sebagai aplikasi.

Masukkan kode berikut di mana Anda ingin diproses.

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

Intinya adalah Workbook.ExportAsFixedFormat metode tersebut sudah memiliki fungsi ekspor, jadi Anda hanya perlu menyebutnya.

Jalankan untuk melihat apakah file PDF adalah output.