c# .NET एक्सेल लाइब्रेरी जो.xls फ़ाइलों को पढ़/लिख सकती है




excel read-write (3)

मैं एक एक्सेल लाइब्रेरी की तलाश में हूं जो पढ़ता / लिखता है .xls (नहीं .xlsx) फ़ाइलें।

मैं excellibrary का उपयोग कर रहा हूं लेकिन यह बहुत छोटी है और मैं अपनी फाइलें खोलने के लिए प्रतीत नहीं कर सकता । मुद्दा लगभग एक साल के लिए जाना जाता है और अभी तक तय नहीं किया गया है।

मैंने किसी अन्य थ्रेड में देखा है EPPlus सुझाव दिया है, लेकिन यह केवल 2007/2010 .xlsx प्रारूप के साथ काम करता है।

मैंने अतीत में Koogra का उपयोग किया है, और इसके साथ काफी खुश हूं, लेकिन मेरा मानना ​​है कि यह केवल पढ़ सकता है ... लिखना नहीं।

यदि आप पुस्तकालय के बारे में जानते हैं, तो कृपया मुझे बताएं कि इसे क्या कहा जाता है।

संपादित करें: यदि आवश्यक हो तो अंतर्निहित Microsoft.Office.Interop.Excel के साथ मेरी एक्सेल फ़ाइल बनाने में मुझे बहुत खुशी है, हालांकि मेरी मशीन में Office 2007 है और लक्ष्य मशीनों में केवल Office 2003 है। मैंने देखा है कि मेरे पास 2 फ़ाइल संस्करण हैं वह लाइब्रेरी: 12, और 14. मैंने लक्ष्य मशीनों पर एक्सेल संस्करण की जांच की और यह 11.8169.8172 है - मुझे लगता है कि अंतर्निहित एक्सेल इंटरऑप लक्ष्य पर काम नहीं करेगा?


क्या कोई कारण है कि आप Excel को पढ़ने और लिखने के लिए एक्सेल ओडीबीसी कनेक्शन का उपयोग नहीं कर सकते हैं? उदाहरण के लिए, मैंने डेटाबेस फ़ाइल की तरह पंक्ति द्वारा एक्सेल फ़ाइल पंक्ति से पढ़ने के लिए निम्न कोड का उपयोग किया है:

private DataTable LoadExcelData(string fileName)
{
  string Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";

  OleDbConnection con = new OleDbConnection(Connection);

  OleDbCommand command = new OleDbCommand();

  DataTable dt = new DataTable(); OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$] WHERE LastName <> '' ORDER BY LastName, FirstName", con);

  myCommand.Fill(dt);

  Console.WriteLine(dt.Rows.Count);

  return dt;
}

आप एक्सेल "डेटाबेस" को उसी तरह लिख सकते हैं। जैसा कि आप देख सकते हैं, आप उपयोग करने के लिए संस्करण संख्या का चयन कर सकते हैं ताकि आप Excel 2003 के साथ मशीन के लिए एक्सेल संस्करण डाउनग्रेड कर सकें। दरअसल, इंटरऑप का उपयोग करने के लिए भी यही सच है। आप निचले संस्करण का उपयोग कर सकते हैं और इसे Excel 2003 के साथ काम करना चाहिए, भले ही आपके पास केवल आपके विकास पीसी पर उच्च संस्करण हो।


मैं NPOI की सिफारिश करता NPOI । एनपीओआई मुफ़्त है और विशेष रूप से .XLS फ़ाइलों के साथ काम करता है। इसने मेरी बहुत मदद की है।

विवरण: यदि आप एनपीओआई का उपयोग करते हैं तो आपको .XLS फ़ाइलों के साथ काम करने के लिए अपनी मशीन पर माइक्रोसॉफ़्ट ऑफिस स्थापित करने की आवश्यकता नहीं है।

इन ब्लॉग पोस्टों की जांच करें:

सी # में एक्सेल स्प्रेडशीट्स .XLS और .XLSX बनाना

एक्सेल टेबल और गतिशील चार्ट के साथ एनपीओआई

[अद्यतन करें]

एनपीओआई 2.0 ने एक्सएलएसएक्स और डॉक्सएक्स के लिए समर्थन जोड़ा।

आप इसके बारे में यहां और अधिक पढ़ सकते हैं:

अनुसूचित पदों की एनपीओआई 2.0 श्रृंखला


आप तृतीय पक्ष टूल पर विचार कर सकते हैं जिसे एक्सेल जेटसेल .NET घटक कहा जाता है पढ़ने / लिखने के लिए एक्सेल फाइलें:

सी # नमूना

// Create New Excel Workbook
ExcelWorkbook Wbook = new ExcelWorkbook();
ExcelCellCollection Cells = Wbook.Worksheets.Add("Sheet1").Cells;

Cells["A1"].Value = "Excel writer example (C#)";
Cells["A1"].Style.Font.Bold = true;
Cells["B1"].Value = "=550 + 5";

// Write Excel XLS file
Wbook.WriteXLS("excel_net.xls");

वीबीएनईटी नमूना

' Create New Excel Workbook
Dim Wbook As ExcelWorkbook = New ExcelWorkbook()
Dim Cells As ExcelCellCollection = Wbook.Worksheets.Add("Sheet1").Cells

Cells("A1").Value = "Excel writer example (C#)"
Cells("A1").Style.Font.Bold = True
Cells("B1").Value = "=550 + 5"

' Write Excel XLS file
Wbook.WriteXLS("excel_net.xls")






read-write