NET'ten Excel Kullanarak Excel Dosyasını PDF'ye Dönüştürün
Çalışma ortamı
- Visual Studio
-
- Visual Studio 2022
- .NET
-
- .NET 6.0
- Windows
-
- pencereler 11
- Excel
-
- Microsoft 365 (İngilizce)
Önkoşullar
- Windows
-
- Sürümlerden biri
- Excel
-
- Sürümlerden biri
Excel dosyasından PDF dosyasına dönüştürme adımları
Bu program, Excel'i bir .NET programından Microsoft.Office.Interop.Excel
COM aracılığıyla işlemek ve açılan Excel dosyasını PDF olarak çıkarmak için kullanır.
Bu nedenle, Excel'in çalışması için Windows'ta yüklü olması gerekir. COM bir Windows mekanizmasıdır, bu nedenle Mac'lerde çalışmaz.
Visual Studio'da bir proje oluşturduğunuzda, Windows masaüstünde çalışan herhangi bir şey olabilir. Bu durumda, bunu bir konsol uygulaması olarak oluşturuyoruz.
Projeyi oluşturduktan sonra, Excel'i kullanmak için kitaplığa göz atın. Burada sunulan yöntem, programı görüntüleme kolaylığı için yüklü olan Excel sürümüne bağlı olarak oluşturulmuştur. Excel sürümünden bağımsız olarak çalıştırmak istiyorsanız, aşağıda bağlantısı verilen yönteme göre değiştirin. Dağıttığımız programları bu şekilde oluşturuyoruz.
Bağımlılıklar'a sağ tıklayın ve COM Başvurusu Ekle'yi seçin.
Excel geliştirme ortamında yüklüyse, sağ üst köşedeki arama alanına Excel
"" yazın, bu yüzden kontrol edin Microsoft Excel XX.0 Object Library
ve "Tamam" düğmesini tıklayın.
Görüntülenen sürüm, yüklü olan Excel sürümüne bağlıdır.
İçe aktarmaya hazır bir Excel dosyanız var. PDF'ye çıktı alma şekli, Excel'de PDF'ye manuel olarak çıktı aldığınız zamankiyle aynıdır, bu nedenle lütfen bir uygulama olarak dahil etmeden önce kontrol edin.
İşlenmesini istediğiniz yere aşağıdaki kodu girin.
// 実行プログラムの場所にある 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);
}
Mesele şu ki Workbook.ExportAsFixedFormat
, yöntemin zaten bir dışa aktarma işlevi var, bu yüzden onu çağırmanız yeterli.
PDF dosyasının çıktı olup olmadığını görmek için çalıştırın.