मेरे पास एक सूची है और मैं सूची में डेटा को एक Excel कार्यपुस्तिका में सहेजने का प्रयास कर रहा हूं। अपवाद ws.Cells[row,col] रेखा पर होता है। यहाँ मेरा कोड है:

using Excel = Microsoft.Office.Interop.Excel;
...
Excel.Application xl = new Excel.Application();
xl.Visible = false;
Excel.Workbook wb = (Excel.Workbook)xl.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;

for (int row = 0; row < listView1.Items.Count; row++)
{
    ListViewItem item = listView1.Items[row];

    for (int col = 0; col < item.SubItems.Count; col++)
    {
        ws.Cells[row,col] = item.SubItems[col].Text.ToString(); // exception here
        //ws.Cells[row,col] = "Test"; // I've tried this too
    }
 }

अपवाद है:

System.Runtime.InteropServices.COMException (0x800A03EC)

मैंने त्रुटि कोड पर कुछ शोध किया है, लेकिन मैं केवल फ़ाइल को सहेजने की कोशिश कर रहे लोगों के साथ मुद्दों को खोजने में सक्षम हूं। मैं फ़ाइल को सहेजने के बिंदु पर नहीं हूं और मुझे अपवाद मिल रहा है।

0
user2097314 18 नवम्बर 2015, 18:42

2 जवाब

सबसे बढ़िया उत्तर

Cells इंडेक्सर एक-आधारित नहीं शून्य-आधारित है (इसलिए A1 [1, 1] है)

for (int row = 1; row <= listView1.Items.Count; row++)
...
   for (int col = 1; col <= item.SubItems.Count; col++)
0
Alex K. 18 नवम्बर 2015, 15:52

एक्सेल सेल 1-बेस इंडेक्सिंग हैं, कोशिश करें:

ws.Cells[row + 1,col + 1] = item.SubItems[col].Text.ToString();
1
TVOHM 18 नवम्बर 2015, 15:53