将ListView控件中的数据导出到Excel文

来源:互联网 发布:网络速度测试工具 编辑:程序博客网 时间:2024/05/22 05:12
/// <summary>/// 将ListView控件中的数据信息导出到Excel文件当中/// </summary>/// <param name="myListView">承载信息的ListView控件对象</param>public void ExportToExcel(string FileName,ref ListView myListView){    //[构建Microsoft.Office.Interop.Excel.Application对象的一个实例]    Application ExcelApplication = new Application();    //[向ExcelApplication对象中添加一个工作簿]    ExcelApplication.Workbooks.Add(true);    //[提取工作簿]    Workbook ExcelWorkbook = ExcelApplication.Workbooks[1];    //[提取工作簿中的活动工作表]    Worksheet myWorksheet = (Worksheet)ExcelWorkbook.ActiveSheet;    //[设置该Excel文件的打印为横向打印]    myWorksheet.PageSetup.Orientation = XlPageOrientation.xlPortrait;    //[使用A4纸张进行打印]    myWorksheet.PageSetup.PaperSize = XlPaperSize.xlPaperA4;    //[设置Excel文件为可见状态]    ExcelApplication.Visible = false;    //[添加该Excel文件的标题]    for (int i = 0; i < myListView.Columns.Count; i++)     {        myWorksheet.Cells[1, i + 1] = "";        myWorksheet.Cells[2, i + 1] = "";        myWorksheet.Cells[3, i + 1] = "";        myWorksheet.Cells[4, i + 1] = "";        myWorksheet.Cells[5, i + 1] = myListView.Columns[i].Text;    }    //[设置标题栏文字的大小和加粗状态]    Range myRange = myWorksheet.get_Range(    myWorksheet.Cells[2, 1],    myWorksheet.Cells[2, myListView.Columns.Count]);    //[合并单元格]    myRange.Merge(null);    //[设置单元格内的文字内容]    myWorksheet.Cells[2, 1] = DateTime.Now.ToChsShortString() + "直升机巡线情况记录单";    //[设置单元格内的行的“行高大小”]    myRange.RowHeight = 40;    //[设置单元格内文字的“字体样式”]    myRange.Font.Name = "宋体";    //[设置单元格内文字的“字体大小”]    myRange.Font.Size = 18;    //[设置单元格内文字的“字体加粗”]    myRange.Font.Bold = true;    //[设置单元格内文字的“水平居中”]    myRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;    //[设置单元格内文字的“垂直居中”]    myRange.VerticalAlignment = XlVAlign.xlVAlignCenter;    //[设置单元格的边框]    myRange.Borders.LineStyle = 7;    //[设置单元格的内部颜色]    myRange.Interior.Color =    System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(50, 138, 222, 208));    //[设置“编号”]    myRange = myWorksheet.get_Range(    myWorksheet.Cells[4, 1],    myWorksheet.Cells[4, myListView.Columns.Count]);    //[合并单元格]    myRange.Merge(null);    //[设置单元格内的文字]    myWorksheet.Cells[4, 1] = "编号:HXWC-" + DateTime.Now.ToFileLongString()    + "报送单位:".PadLeft(100, ' ') + myListView.Items[0].SubItems[6].Text;    //[设置单元格内文字的样式]    myRange.Font.Name = "仿宋";    //[设置单元格内文字的大小]    myRange.Font.Size = 11;    //[设置单元格的边框]    myRange.Borders.LineStyle = 7;    //[设置报表的头部栏]    myRange = myWorksheet.get_Range(    myWorksheet.Cells[5, 1],    myWorksheet.Cells[5, myListView.Columns.Count]);    //[设置单元格的边框]    myRange.Borders.LineStyle = 7;    //[设置单元格内文字的“水平居中”]    myRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;    //[设置单元格内文字的“垂直居中”]    myRange.VerticalAlignment = XlVAlign.xlVAlignCenter;    //[设置单元格内文字的字体样式]    myRange.Font.Name = "华文宋体";    //[设置单元格内文字的大小]    myRange.Font.Size = 11;    //[设置单元格内文字为加粗状态]    myRange.Font.Bold = true;    //[设置单元格的宽度]    myRange.RowHeight = 20;    //[设置单元格背景颜色]    myRange.Interior.Color =    System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(80, 219, 229, 241));    //[向该Excel文件中添加内容]    for (int i = 0; i < myListView.Items.Count; i++)    {        for (int j = 0; j < myListView.Items[i].SubItems.Count - 1; j++)        {           myWorksheet.Cells[i + 6, j + 1] = myListView.Items[i].SubItems[j].Text;        }        //[设置每一行的样式:其中包括文字的大小、单元格的宽度、单元格内文字的对其方式]        //[设置“编号”列]        myRange = myWorksheet.get_Range(myWorksheet.Cells[i + 6, 1], myWorksheet.Cells[i + 6, 1]);        //[设置单元格内的文字水平居中]        myRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;        //[设置单元格内的文字字体样式]        myRange.Font.Name = "宋体";        //[设置单元格内的文字的大小]        myRange.Font.Size = 10;        //[设置单元格的宽度]        myRange.RowHeight = 25;        //[设置单元格的宽度]        myRange.ColumnWidth = 8;        //[设置单元格的边框]        myRange.Borders.LineStyle = 7;        //[设置单元格的背景颜色]        myRange.Interior.Color =        (i % 2) == 0 ?        System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(225, 225, 225))        :        System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(80, 234, 241, 221));                        //[设置“其他”列]        myRange = myWorksheet.get_Range(        myWorksheet.Cells[i + 6, 2],        myWorksheet.Cells[i + 6, myListView.Items[i].SubItems.Count - 1]);        //[设置单元格内的文字靠左居中]        myRange.HorizontalAlignment = XlHAlign.xlHAlignLeft;        //[设置单元格的宽度]        myRange.RowHeight = 25;        //[设置单元格的宽度]        myRange.ColumnWidth = 25;        //[设置单元格内的文字字体样式]        myRange.Font.Name = "宋体";        //[设置单元格内的文字的大小]        myRange.Font.Size = 10;        //[设置单元格的边框]        myRange.Borders.LineStyle = 7;        //[设置单元格的背景颜色]        myRange.Interior.Color =        (i % 2) == 0 ?        System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(225, 225, 225))        :        System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(80, 234, 241, 221));    }                //[保存Excel文件到本地磁盘]    ExcelWorkbook.SaveCopyAs(FileName);    ExcelWorkbook.Saved = true;    //[进行列集处理]    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(myRange);    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(myWorksheet);    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ExcelWorkbook);    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ExcelApplication);}

原创粉丝点击