110,534
社区成员
发帖
与我相关
我的任务
分享
public void ReportToExcel(ListView list, List<int> ColumnWidth, string ReportTitleName)
{
//获取用户选择的excel文件名称
string path;
SaveFileDialog savefile = new SaveFileDialog();
savefile.Filter = "Excel files(*.xls)|*.xls";
if (savefile.ShowDialog() == DialogResult.OK)
{
//获取保存路径
path = savefile.FileName;
Workbook wb = new Workbook();
Worksheet ws = wb.Worksheets[0];
Cells cell = ws.Cells;
//定义并获取导出的数据源
string[,] _ReportDt = new string[list.Items.Count, list.Columns.Count];
for (int i = 0; i < list.Items.Count; i++)
{
for (int j = 0; j < list.Columns.Count; j++)
{
_ReportDt[i, j] = list.Items[i].SubItems[j].Text.ToString();
}
}
//合并第一行单元格
Range range = cell.CreateRange(0, 0, 1, list.Columns.Count);
range.Merge();
cell["A1"].PutValue(ReportTitleName); //标题
//设置行高
cell.SetRowHeight(0, 20);
//设置字体样式
Style style1 = wb.Styles[wb.Styles.Add()];
style1.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style1.Font.Name = "宋体";
style1.Font.IsBold = true;//设置粗体
style1.Font.Size = 12;//设置字体大小
Style style2 = wb.Styles[wb.Styles.Add()];
style2.HorizontalAlignment = TextAlignmentType.Center;
style2.Font.Size = 10;
//给单元格关联样式
cell["A1"].SetStyle(style1); //报表名字 样式
//设置Execl列名
for (int i = 0; i < list.Columns.Count; i++)
{
cell[1, i].PutValue(list.Columns[i].Text);
cell[1, i].SetStyle(style2);
}
//设置单元格内容
int posStart = 2;
for (int i = 0; i < list.Items.Count; i++)
{
for (int j = 0; j < list.Columns.Count; j++)
{
cell[i + posStart, j].PutValue(_ReportDt[i, j].ToString());
cell[i + posStart, j].SetStyle(style2);
}
}
//设置列宽
for (int i = 0; i < list.Columns.Count; i++)
{
cell.SetColumnWidth(i, Convert.ToDouble(ColumnWidth[i].ToString()));
}
//保存excel表格
wb.Save(path);
}
}
可参照我之前写的程序http://download.csdn.net/detail/kevin_iot/9377861