将ListView导出为Excel格式

填充后我有一个ListView ,看起来像这样: 在这里输入图像说明

我已经可以使用以下代码将其导出为CSV格式的文件:

  StringBuilder sb = new StringBuilder(); //Making columns! foreach (ColumnHeader ch in lvCnt.Columns) { sb.Append(ch.Text + ","); } sb.AppendLine(); //Looping through items and subitems foreach (ListViewItem lvi in lvCnt.Items) { foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems) { if (lvs.Text.Trim() == string.Empty) sb.Append(" ,"); else sb.Append(lvs.Text + ","); } sb.AppendLine(); } 

但问题是,在CSV中,我不能导出列表ListView项和子项的背面颜色,在我的情况是非常重要的。 如果你能帮助我,或者至less让我指向正确的方向,那就太好了!

UPDATE

我设法find一种方式直接导出到Excel,但我仍然不能将ListView项目的背景颜色导出到Excel中。 请帮忙!

 private void ToExcel() { Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); app.Visible = true; Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(1); Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1]; int i = 1; int i2 = 1; foreach (ListViewItem lvi in myList.Items) { i = 1; foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems) { ws.Cells[i2, i] = lvs.Text; i++; } i2++; } } 

似乎这是一个非常简单的项目导出您的数据:

它具有显示如何设置背景颜色和其他格式项目的示例。

你已经有你的代码循环通过头和行,所以你应该能够使用它!