C#中ListView数据导出excel表


from C#.net2.0--CDRapp--appMain.cs


private void cdrToExcel()
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Excel(*.xls)|*.xls";
dialog.FileName = "CDR.xls";
if (dialog.ShowDialog() == DialogResult.OK)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
object missing = System.Reflection.Missing.Value;
try
{
if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
return;
}

Microsoft.Office.Interop.Excel.Workbooks xlBooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook xlBook = xlBooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range = null;
//抬头

range = xlSheet.get_Range("A1", "P1");
range.Merge(Missing.Value); // 合并单元格
range.Columns.AutoFit(); // 设置列宽为自动适

// 设置单元格左边框加粗
range.Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;
// 设置单元格右边框加粗
range.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;
range.HorizontalAlignment = XlHAlign.xlHAlignCenter;// 设置单元格水平居中
range.Value2 = "CDR";
range.Font.Size = 18; // 设置字体大小
//range.Font.ColorIndex = 5; // 设置字体颜色
//range.Interior.ColorIndex = 6; // 设置单元格背景色
//range.RowHeight = 25; // 设置行高
//range.ColumnWidth = 20; // 设置列宽

xlSheet.Cells[2, 1] = "Cdr_Id";
xlSheet.Cells[2, 2] = "Create_time";
xlSheet.Cells[2, 3] = "Setup_time";
xlSheet.Cells[2, 4] = "Alerting_time";
xlSheet.Cells[2, 5] = "Connect_timeconnect_time";
xlSheet.Cells[2, 6] = "During";
xlSheet.Cells[2, 7] = "Caller";
xlSheet.Cells[2, 8] = "Called";
xlSheet.Cells[2, 9] = "Caller_ip";
xlSheet.Cells[2, 10] = "Called_ip";
xlSheet.Cells[2, 11] = "Src_info";
xlSheet.Cells[2, 12] = "Dest_info";
xlSheet.Cells[2, 13] = "Release";
xlSheet.Cells[2, 14] = "Release_reason";
xlSheet.Cells[2, 15] = "Ring_time";
xlSheet.Cells[2, 16] = "Usernametype";


int rowIndex = 3;//这个用来标记数据从多少行开始

//设置单元格
for (int i = 1; i <= lvCDR.Columns.Count; i++)
{
range = xlSheet.get_Range(xlSheet.Cells[3, i], xlSheet.Cells[rowIndex + this.lvCDR.Items.Count, i]);
range.HorizontalAlignment = XlHAlign.xlHAlignLeft;// 设置单元格水平居左
range.NumberFormatLocal = "@";//文本格式
range.ColumnWidth = 12;
}

//标题栏
range = xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[2, 16]);
range.Interior.ColorIndex = 45;//设置标题背景色为 浅橙色
range.Font.Bold = true;//标题字体加粗

int isOut = 0;
pbProglass.Visible = true;
foreach (ListViewItem objItem in this.lvCDR.Items)
{
for (int i = 0; i < lvCDR.Columns.Count ; i++)
{
xlSheet.Cells[rowIndex, i + 1] = objItem.SubItems[i].Text;
}

rowIndex += 1;
isOut++;
if (isOut > pbProglass.Maximum)
{
isOut = 0;
}
pbProglass.Value = isOut;
}
pbProglass.Visible = false;

//数据区域
range = xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[rowIndex, 16]);
range.Borders.LineStyle = 1;
range.Font.Size = 10;


range = xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowIndex, 16]);
range.Merge(Missing.Value);
// 合并单元格
// range.Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;
// 设置单元格右边框加粗
// range.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;
range.RowHeight = 20;
//range.Value2 = " " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
range.HorizontalAlignment = XlHAlign.xlHAlignRight;// 设置单元格水平居中


if (xlSheet != null)
{
xlSheet.SaveAs(dialog.FileName, missing, missing, missing, missing, missing, missing, missing, missing, missing);
xlApp.Visible = true;
}


}
catch (Exception)
{
xlApp.Quit();
throw;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值