.NET से Excel का उपयोग कर के Excel फ़ाइल को PDF में कनवर्ट करें
ऑपरेटिंग वातावरण
- Visual Studio
-
- Visual Studio 2022
- ।जाल
-
- .NET 6.0
- विंडोज़
-
- विंडोज 11
- श्रेष्ठ होना
-
- माइक्रोसॉफ्ट 365
आवश्यकताएँ
- विंडोज़
-
- संस्करणों में से एक
- श्रेष्ठ होना
-
- संस्करणों में से एक
एक एक्सेल फाइल से एक पीडीएफ फाइल में बदलने के लिए चरण
यह प्रोग्राम COM के माध्यम से .NET प्रोग्राम Microsoft.Office.Interop.Excel
से Excel में हेरफेर करने और खोली गई Excel फ़ाइल को PDF के रूप में आउटपुट करने के लिए उपयोग करता है.
इसलिए, चलाने के लिए Excel Windows पर स्थापित होना आवश्यक है। COM एक विंडोज तंत्र है, इसलिए यह मैक पर काम नहीं करता है।
जब आप Visual Studio में कोई प्रोजेक्ट बनाते हैं, तो यह विंडोज डेस्कटॉप पर चलने वाली कुछ भी हो सकती है। इस मामले में, हम इसे कंसोल ऐप के रूप में बना रहे हैं।
प्रोजेक्ट बनाने के बाद, Excel का उपयोग करने के लिए लायब्रेरी ब्राउज़ करें। यहां प्रस्तुत विधि इस तरह से बनाई गई है जो प्रोग्राम को देखने में आसानी के लिए स्थापित एक्सेल के संस्करण पर निर्भर करती है। यदि आप इसे Excel के संस्करण से स्वतंत्र रूप से चलाना चाहते हैं, तो इसे नीचे लिंक की गई विधि के अनुसार संशोधित करें. इस तरह हम उन कार्यक्रमों का निर्माण करते हैं जो हम वितरित करते हैं।
निर्भरताएँ राइट-क्लिक करें और COM संदर्भ जोड़ें का चयन करें.
यदि Excel विकास परिवेश में स्थापित है, तो ऊपरी दाएँ कोने में Excel
खोज फ़ील्ड में "" टाइप करें, इसलिए इसे जांचें Microsoft Excel XX.0 Object Library
और "ठीक" बटन पर क्लिक करें।
प्रदर्शित किया गया संस्करण स्थापित Excel के संस्करण पर निर्भर करता है.
आपके पास एक Excel फ़ाइल आयात करने के लिए तैयार है. जिस तरह से यह पीडीएफ में आउटपुट होता है, वह वैसा ही होता है जब आप एक्सेल में पीडीएफ में मैन्युअल रूप से आउटपुट करते हैं, इसलिए कृपया इसे एप्लिकेशन के रूप में शामिल करने से पहले इसकी जांच करें।
निम्न कोड दर्ज करें जहाँ आप इसे संसाधित करना चाहते हैं.
// 実行プログラムの場所にある 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);
}
मुद्दा यह है कि Workbook.ExportAsFixedFormat
विधि में पहले से ही एक निर्यात फ़ंक्शन है, इसलिए आपको बस इसे कॉल करने की आवश्यकता है।
यह देखने के लिए इसे चलाएं कि पीडीएफ फाइल आउटपुट है या नहीं।