تحويل ملف Excel إلى PDF باستخدام Excel من .NET

تحديث الصفحة :
تاريخ إنشاء الصفحة :

بيئة التشغيل

فيجوال ستوديو
  • فيجوال ستوديو 2022
.صافي
  • .NET 6.0
نوافذ
  • ويندوز ١١
اكسل
  • مايكروسوفت 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 هو الإخراج.