Excel fájl konvertálása PDF formátumba az Excel használatával a .NET alkalmazásból

Oldal frissítve :
Oldal létrehozásának dátuma :

Működési környezet

Visual Studio
  • Visual Studio 2022
.HÁLÓ
  • .NET 6.0
Windows
  • Windows 11 esetén
Kitűnik
  • Microsoft 365 esetén

Előfeltételek

Windows
  • Az egyik változat
Kitűnik
  • Az egyik változat

Az Excel-fájlból PDF-fájlba konvertálás lépései

Ez a program az Excel manipulálására szolgál egy .NET programból Microsoft.Office.Interop.Excel COM-on keresztül, és a megnyitott Excel fájlt PDF-ként adja ki. Ezért az Excel futtatásához telepíteni kell a Windows rendszert. A COM egy Windows mechanizmus, így Mac számítógépeken nem működik.

Amikor létrehoz egy projektet a Visual Studióban, az bármi lehet, ami a Windows asztalon fut. Ebben az esetben konzolalkalmazásként hozzuk létre.

A projekt létrehozása után tallózással keresse meg a tárban az Excel használatát. Az itt bemutatott módszer úgy van felépítve, hogy a program könnyebb megtekintése érdekében telepített Excel verziójától függ. Ha az Excel verziójától függetlenül szeretné futtatni, módosítsa az alább hivatkozott módszer szerint. Így építjük fel az általunk terjesztett programokat.

Kattintson a jobb gombbal a Dependencies (Függőségek) elemre, és válassza az Add COM Reference (COM-hivatkozás hozzáadása) lehetőséget.

Ha az Excel telepítve van a fejlesztési környezetben, írja be a "" szót a jobb felső sarokban található Excel keresőmezőbe, ezért ellenőrizze Microsoft Excel XX.0 Object Library , és kattintson az "OK" gombra. A megjelenített verzió a telepített Excel verziójától függ.

Van egy Excel-fájlja, amely készen áll az importálásra. A PDF-kimenet módja ugyanaz, mint amikor manuálisan PDF-be exportál Excel-ben, ezért kérjük, ellenőrizze, mielőtt alkalmazásként beépítené.

Írja be a következő kódot oda, ahol fel szeretné dolgozni.

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

A lényeg az, hogy Workbook.ExportAsFixedFormat a módszernek már van exportálási funkciója, ezért csak meg kell hívnia.

Futtassa annak ellenőrzéséhez, hogy a PDF-fájl kimenete van-e.