将ListView导出为Excel格式

8

我有一个ListView,填充之后会看起来像这样:

enter image description here

我已经可以使用以下代码将其导出为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项目和子项目的背景颜色,而这在我的情况下非常重要。如果您可以帮助我解决这个问题,或者至少指导我正确的方向,那将非常好!更新:我设法找到了一种直接导出到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++;
        }
}
1个回答

6

谢谢,看起来这是针对Web应用程序的,但我想要WinForms的。由于我目前无法访问Visual Studio,您认为它是否可以在WinForms上工作? - Dumbo
是的,这不与网站项目绑定。下载包中包含一个示例控制台模式项目,用于导出文件。 - rtpHarry
谢谢,这是一个很棒的库。 - Dumbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接