在excel导出列表视图中的第1行添加文本

时间:2013-11-27 09:24:11

标签: c# excel listview

我想为excel表的第一行中的每一列命名,我在第一行命名列时遇到异常。请指教?

Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;

        int i = 2;
        int j = 1;

        if (comboBox1.Text == "Brickcom")
        {
            try
            {
                ws.Rows[j, 1] = "Category";
                ws.Rows[j, 2] = "Part Number";
                ws.Rows[j, 3] = "TradePrice";
                ws.Rows[j, 4] = "Product";
                ws.Rows[j, 5] = "Resolution";
                ws.Rows[j, 6] = "Included Accessories";
                ws.Rows[j, 7] = "Major Acc Price";            


                foreach (ListViewItem comp in listView1.Items)
                {

                    ws.Cells[i, j] = comp.Text.ToString();

                    foreach (ListViewItem.ListViewSubItem drv in comp.SubItems)
                    {
                        ws.Cells[i, j] = drv.Text.ToString();

                        j++;
                    }

                    j = 1;
                    i++;                        
                }
                xla.Visible = true;
            }
            catch
            {
                MessageBox.Show("Export did not work");
            }
        }

2 个答案:

答案 0 :(得分:0)

试试这个:

            ws.Cells[j, 1] = "Category";
            ws.Cells[j, 2] = "Part Number";
            ws.Cells[j, 3] = "TradePrice";
            ...

答案 1 :(得分:0)

我会使用流编写器:

    SaveFileDialog savefile = new SaveFileDialog();
    savefile.Filter = "CSV|*.csv";
    savefile.RestoreDirectory = true;
    savefile.ShowDialog();
    string filename = savefile.FileName;
    if (filename != "")
   {
    StreamWriter ofile = new StreamWriter(filename);
    ofile.WriteLine("Category, Part Number, TradePrice, ..."); //just separate using a comma ,

    //your complete writings here

    ofile.Close(); //close the streamwriter and you're done
   }
祝你好运