Teisendage Exceli fail PDF-iks, kasutades Excelit saidilt .NET

Lehekülg uuendatud :
Lehe loomise kuupäev :

Töökeskkond

Visuaalne stuudio
  • Visual Studio 2022
.NET
  • .NET 6.0
Windows
  • Windows 11
Excel
  • Microsoft 365

Eeltingimused

Windows
  • Üks versioonidest
Excel
  • Üks versioonidest

Exceli failist PDF-failiks teisendamise juhised

See programm kasutab Exceli manipuleerimiseks .net-programmist Microsoft.Office.Interop.Excel COM-i kaudu ja avatud Exceli faili väljastamiseks PDF-failina. Seetõttu peab töötamiseks olema Windowsi installitud Excel. COM on Windowsi mehhanism, nii et see ei tööta Macides.

Kui loote projekti Visual Studios, võib see olla kõik, mis töötab Windowsi töölaual. Sel juhul loome selle konsoolirakendusena.

Pärast projekti loomist sirvige teeki, et leida teavet Exceli kasutamise kohta. Siin esitatud meetod on ehitatud viisil, mis sõltub programmi vaatamise hõlbustamiseks installitud Exceli versioonist. Kui soovite seda käivitada Exceli versioonist sõltumatult, muutke seda vastavalt allpool lingitud meetodile. Nii ehitame programme, mida levitame.

Paremklõpsake valikut Sõltuvused ja valige Lisa COM-viide.

Kui arenduskeskkonda on installitud Excel, tippige paremas ülanurgas Excel olevale otsinguväljale "", nii et kontrollige Microsoft Excel XX.0 Object Library seda ja klõpsake nuppu "OK". Kuvatav versioon sõltub installitud Exceli versioonist.

Teil on importimiseks valmis Exceli fail. Viis, kuidas seda PDF-i väljastatakse, on sama, mis siis, kui väljastate käsitsi PDF-i Excelis, nii et palun kontrollige seda enne rakendusena lisamist.

Sisestage järgmine kood kohta, kus soovite seda töödelda.

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

Asi on selles, et meetodil on juba ekspordifunktsioon, nii et Workbook.ExportAsFixedFormat peate seda lihtsalt helistama.

Käivitage see, et näha, kas PDF-fail on väljastatud.