تبدیل فایل اکسل به PDF با استفاده از اکسل از دات نت

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط عملیاتی

ویژوال استودیو
  • ویژوال استودیو 2022
.خالص
  • دات نت 6.0
ویندوز
  • ویندوز 11
اکسل
  • مایکروسافت 365

پیش نیازها

ویندوز
  • یکی از نسخه های
اکسل
  • یکی از نسخه های

مراحل تبدیل از یک فایل اکسل به یک فایل PDF

این برنامه برای دستکاری اکسل از یک برنامه Microsoft.Office.Interop.Excel .NET از طریق COM استفاده می کند و فایل اکسل باز شده را به صورت PDF خروجی می دهد. بنابراین، اکسل باید بر روی ویندوز نصب شود تا اجرا شود. COM یک مکانیسم ویندوز است، بنابراین در Macs کار نمی کند.

هنگامی که یک پروژه را در ویژوال استودیو ایجاد می کنید، می تواند هر چیزی باشد که بر روی دسکتاپ ویندوز اجرا می شود. در این مورد، ما ان را به عنوان یک برنامه کنسول ایجاد می کنیم.

پس از ایجاد پروژه، کتابخانه را برای استفاده از اکسل مرور کنید. روش ارائه شده در اینجا ساخته شده است در راه است که بستگی به نسخه اکسل است که برای سهولت مشاهده برنامه نصب شده است. اگر می خواهید ان را مستقل از نسخه اکسل اجرا کنید، ان را با توجه به روش مرتبط زیر تغییر دهید. اینگونه است که ما برنامه هایی را که توزیع می کنیم می سازیم.

روی Dependencies راست کلیک کرده و گزینه Add COM Reference را انتخاب کنید.

اگر اکسل در محیط توسعه نصب شده است، "" را در قسمت جستجو در Excel گوشه بالا سمت راست تایپ کنید، بنابراین ان را بررسی کنید Microsoft Excel XX.0 Object Library و روی دکمه "OK" کلیک کنید. نسخه ای که نمایش داده می شود بستگی به نسخه اکسل دارد که نصب شده است.

شما باید یک فایل اکسل اماده برای واردات. نحوه خروجی ان به PDF همان زمانی است که شما به صورت دستی به PDF در اکسل خروجی می دهید، بنابراین لطفا قبل از اینکه ان را به عنوان یک برنامه ترکیب کنید، ان را بررسی کنید.

کد زیر را وارد کنید که در ان شما می خواهید ان را پردازش شود.

// 実行プログラムの場所にある 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 خروجی است.