Экспорт ListView в формат Excel - PullRequest
8 голосов
/ 29 ноября 2011

У меня есть 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, которые в моем случае очень важны. Было бы неплохо, если бы вы могли помочь мне с этим или, по крайней мере, указать мне правильное направление!

UPDATE

Мне удалось найти способ экспорта напрямую в 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 голосов
/ 29 ноября 2011

Похоже, это довольно простой проект для экспорта ваших данных:

В нем есть примеры, показывающие, как установить цвета фона и другое форматированиеitems.

У вас уже есть код для циклического перемещения по заголовкам и строкам, чтобы вы могли с ним работать!

...