המרת קובץ Excel ל- PDF באמצעות Excel מ- .NET

עודכן דף :
תאריך יצירת דף :

סביבת הפעלה

Visual Studio
  • Visual Studio 2022
.רשת
  • .NET 6.0
חלונות
  • חלונות 11
הצטיין
  • Microsoft 365

דרישות מוקדמות

חלונות
  • אחת הגרסאות
הצטיין
  • אחת הגרסאות

שלבים להמרה מקובץ Excel לקובץ PDF

תוכנית זו משתמשת כדי לתפעל Excel מתוכנית Microsoft.Office.Interop.Excel .NET באמצעות COM ופלט קובץ Excel שנפתח כ- PDF. לכן, Excel חייב להיות מותקן ב- Windows כדי לפעול. COM הוא מנגנון של Windows, ולכן הוא לא עובד במחשבי Mac.

בעת יצירת פרוייקט ב- Visual Studio, הוא יכול להיות כל דבר הפועל בשולחן העבודה של Windows. במקרה זה, אנו יוצרים אותו כאפליקציית קונסולה.

לאחר יצירת הפרוייקט, עיין בספריה לשימוש ב- Excel. השיטה המוצגת כאן בנויה באופן התלוי בגירסת Excel המותקנת לקלות הצפייה בתוכנית. אם ברצונך להפעיל אותו ללא תלות בגירסת Excel, שנה אותו בהתאם לשיטה המקושרת להלן. ככה אנחנו בונים את התוכניות שאנחנו מפיצים.

לחץ באמצעות לחצן העכבר הימני על יחסי תלות ובחר הוסף חומר עזר ל- COM.

אם Excel מותקן בסביבת הפיתוח, הקלד "" בשדה Excel החיפוש בפינה השמאלית העליונה, אז בדוק Microsoft Excel XX.0 Object Library אותו ולחץ על הלחצן "אישור". הגירסה המוצגת תלויה בגירסת Excel המותקנת.

יש לך קובץ Excel מוכן לייבוא. אופן הפלט ל- PDF זהה לאופן שבו אתה מפיק פלט ידני ל- PDF ב- Excel, לכן בדוק אותו לפני שתשלב אותו כיישום.

הזן את הקוד הבא במקום שבו ברצונך לעבדו.

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

הנקודה היא כי Workbook.ExportAsFixedFormat השיטה כבר יש פונקציית ייצוא, אז אתה רק צריך לקרוא לזה.

הפעל אותו כדי לראות אם קובץ ה- PDF הוא פלט.