Konwertuj plik Excel na PDF za pomocą programu Excel z platformy .NET
Środowisko pracy
- Visual Studio
- 
- informacji o wersji Visual Studio 2022
 
- .SIEĆ
- 
- .NET 6.0
 
- Windows
- 
- Okna 11
 
- Programu excel
- 
- Platforma Microsoft 365
 
Warunki wstępne
- Windows
- 
- Jedna z wersji
 
- Programu excel
- 
- Jedna z wersji
 
Kroki, aby przekonwertować plik Excel na plik PDF
Ten program służy do manipulowania programem Excel z programu Microsoft.Office.Interop.Excel .NET za pośrednictwem COM i wyprowadzania otwartego pliku Excel jako pliku PDF.
Dlatego program Excel musi być zainstalowany w systemie Windows, aby można było działać. COM to mechanizm systemu Windows, więc nie działa na komputerach Mac.
Podczas tworzenia projektu w programie Visual Studio może to być wszystko, co działa na pulpicie systemu Windows. W tym przypadku tworzymy ją jako aplikację konsolową.
Po utworzeniu projektu przejrzyj bibliotekę pod kątem korzystania z programu Excel. Przedstawiona tutaj metoda jest zbudowana w sposób, który zależy od wersji programu Excel, która jest zainstalowana w celu ułatwienia przeglądania programu. Jeśli chcesz uruchomić go niezależnie od wersji programu Excel, zmodyfikuj go zgodnie z metodą, do której link znajduje się poniżej. W ten sposób budujemy programy, które dystrybuujemy.
Kliknij prawym przyciskiem myszy pozycję Zależności i wybierz polecenie Dodaj odwołanie COM.
Jeśli Excel jest zainstalowany w środowisku programistycznym, wpisz "" w polu wyszukiwania w Excel prawym górnym rogu, więc zaznacz Microsoft Excel XX.0 Object Library to i kliknij przycisk "OK".
Wyświetlana wersja zależy od zainstalowanej wersji programu Excel.
Masz plik Excel gotowy do zaimportowania. Sposób, w jaki jest wyprowadzany do pliku PDF, jest taki sam, jak w przypadku ręcznego wyprowadzania do pliku PDF w programie Excel, więc sprawdź to przed włączeniem go jako aplikacji.
Wprowadź następujący kod w miejscu, w którym chcesz go przetworzyć.
// 実行プログラムの場所にある 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);
}
Chodzi o to, że metoda ma już funkcję export, Workbook.ExportAsFixedFormat więc wystarczy ją wywołać.
Uruchom go, aby sprawdzić, czy plik PDF jest wyjściowy.