แปลงไฟล์ 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 ส่งออกหรือไม่