Konvertuokite "Excel" failą į PDF naudodami "Excel" iš .NET
Darbo aplinka
- Vizualinė studija
-
- "Visual Studio 2022"
- .GRYNOJI
-
- .NET 6.0
- Windows
-
- Langai 11
- Excel
-
- "Microsoft 365"
Būtinosios sąlygos
- Windows
-
- Viena iš versijų
- Excel
-
- Viena iš versijų
Veiksmai, kaip konvertuoti iš "Excel" failo į PDF failą
Ši programa naudoja manipuliuoti "Excel" iš .NET programos Microsoft.Office.Interop.Excel
per COM ir išvesti atidarytą "Excel" failą kaip PDF.
Todėl, norint paleisti, "Excel" turi būti įdiegta "Windows". COM yra "Windows" mechanizmas, todėl jis neveikia "Mac" kompiuteriuose.
Kai kuriate projektą "Visual Studio", tai gali būti bet kas, kas veikia "Windows" darbalaukyje. Šiuo atveju ją kuriame kaip konsolės programą.
Sukūrę projektą, naršykite bibliotekoje, kad galėtumėte naudoti "Excel". Čia pateiktas metodas yra sukurtas taip, kad priklauso nuo įdiegtos "Excel" versijos, kad būtų lengviau peržiūrėti programą. Jei norite jį paleisti nepriklausomai nuo "Excel" versijos, modifikuokite jį pagal toliau nurodytą metodą. Taip mes kuriame programas, kurias platiname.
Dešiniuoju pelės mygtuku spustelėkite Priklausomybės ir pasirinkite Pridėti COM nuorodą.
Jei "Excel" yra įdiegta kūrimo aplinkoje, viršutiniame dešiniajame kampe esančiame Excel
paieškos laukelyje įveskite "", todėl patikrinkite Microsoft Excel XX.0 Object Library
jį ir spustelėkite mygtuką "Gerai".
Rodoma versija priklauso nuo įdiegtos "Excel" versijos.
Turite paruoštą importuoti "Excel" failą. Jo išvesties į PDF būdas yra toks pat, kaip ir rankiniu būdu išvedant į PDF programoje "Excel", todėl patikrinkite jį prieš įtraukdami jį kaip programą.
Įveskite šį kodą, kur norite, kad jis būtų apdorotas.
// 実行プログラムの場所にある 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);
}
Esmė ta, kad Workbook.ExportAsFixedFormat
metodas jau turi eksporto funkciją, todėl jums tereikia jį paskambinti.
Paleiskite jį, kad pamatytumėte, ar PDF failas yra išvestis.