แปลงไฟล์ Excel เป็น PDF โดยใช้ Excel จาก. NET

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สภาพแวดล้อมการทํางาน

วิชวลสตูดิโอ
  • Visual Studio 2022
ตาข่าย
  • .NET 6.0
หน้าต่าง
  • หน้าต่าง 11
ยอดเยี่ยม
  • ไมโครซอฟท์ 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 ส่งออกหรือไม่