.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 विधि में पहले से ही एक निर्यात फ़ंक्शन है, इसलिए आपको बस इसे कॉल करने की आवश्यकता है।

यह देखने के लिए इसे चलाएं कि पीडीएफ फाइल आउटपुट है या नहीं।