ListView导出到Excel
小写了个ListView导出到Excel表格的方法!
using Microsoft.Office.Interop.Excel;(11.0.0.0)不知道其他版本支持不!
不过一般都不支持以前版本.
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
public static void ExpToExcel(ListView listView)
{
if (listView.Items.Count == 0) return;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Workbooks workbooks = excel.Workbooks;
Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets worksheets = workbook.Worksheets;
Worksheet sheet = (Worksheet)worksheets.get_Item(1);
excel.Visible = true;
Range range;
excel.Cells.Select();
excel.Cells.RowHeight = 30;
excel.Cells.Font.Size = 10;
excel.Cells.HorizontalAlignment = XlHAlign.xlHAlignCenter;
int rowPos = 2;
range = excel.get_Range(sheet.Cells[rowPos, 1], sheet.Cells[rowPos, 1]);
range.Select();
for (int i = 1; i <= listView.Columns.Count; i++)
{
range = excel.get_Range(sheet.Cells[rowPos, i], sheet.Cells[rowPos, i]);
range.Borders.LineStyle = 1;
range.Font.Name = "宋体";
range.Font.Size = 16;
range.Font.Bold = true;
range.HorizontalAlignment = XlHAlign.xlHAlignCenter;
range.ColumnWidth = 18;
sheet.Cells[rowPos, i] = listView.Columns[i - 1].Text.ToString();
}
rowPos++;
foreach (ListViewGroup lvg in listView.Groups)
{
range = excel.get_Range(sheet.Cells[rowPos, 1], sheet.Cells[rowPos, 1]);
range.Borders.LineStyle = 1;
range.Font.Name = "宋体";
range.Font.Size = 12;
range.HorizontalAlignment = XlHAlign.xlHAlignCenter;
sheet.Cells[rowPos, 1] = lvg.Header;
rowPos++;
foreach (ListViewItem item in lvg.Items)
{
for (int i = 1; i <= listView.Columns.Count; ++i)
{
range = excel.get_Range(sheet.Cells[rowPos, i], sheet.Cells[rowPos, i]);
range.Borders.LineStyle = 1;
range.Font.Name = "宋体";
range.Font.Size = 12;
range.HorizontalAlignment = XlHAlign.xlHAlignCenter;
sheet.Cells[rowPos, i] = item.SubItems[i - 1].Text;
}
rowPos++;
}
}
}