zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#中将ListView中数据导出到Excel的实例方法

2023-06-13 09:14:51 时间

添加方法:选择项目->引用->右击“添加引用”->选择COM找到上面组件—>点击“确定”。
实现代码如下:

复制代码代码如下:


   privatevoid导出数据_Click(objectsender,EventArgse) 
   {     
   ExportToExecl(); 
   }  
   ///<summary>   
   ///执行导出数据
   ///</summary>
   publicvoidExportToExecl()
   {     
   System.Windows.Forms.SaveFileDialogsfd=newSaveFileDialog();  
   sfd.DefaultExt="xls";   
   sfd.Filter="Excel文件(*.xls)|*.xls";     
   if(sfd.ShowDialog()==DialogResult.OK)  
   {          
   DoExport(this.lstPostion,sfd.FileName); 
   }   
   }   
   ///<summary>
   ///具体导出的方法
   ///</summary>  
   ///<paramname="listView">ListView</param>  
   ///<paramname="strFileName">导出到的文件名</param>  
   privatevoidDoExport(ListViewlistView,stringstrFileName)   
   {      
   introwNum=listView.Items.Count;  
   intcolumnNum=listView.Items[0].SubItems.Count;
   introwIndex=1;      
   intcolumnIndex=0;      
   if(rowNum==0||string.IsNullOrEmpty(strFileName))  
   {           
   return;      
   }      
   if(rowNum>0)   
   {         
   Microsoft.Office.Interop.Excel.ApplicationxlApp=newMicrosoft.Office.Interop.Excel.ApplicationClass(); 
   if(xlApp==null)       
   {            
   MessageBox.Show("无法创建excel对象,可能您的系统没有安装excel"); 
   return;         
   }         
   xlApp.DefaultFilePath="";   
   xlApp.DisplayAlerts=true;       
   xlApp.SheetsInNewWorkbook=1;     
   Microsoft.Office.Interop.Excel.WorkbookxlBook=xlApp.Workbooks.Add(true);  
   //将ListView的列名导入Excel表第一行           
   foreach(ColumnHeaderdcinlistView.Columns)  
   {            
   columnIndex++;     
   xlApp.Cells[rowIndex,columnIndex]=dc.Text;  
   }           
   //将ListView中的数据导入Excel中       
   for(inti=0;i<rowNum;i++)     
   {             
   rowIndex++;     
   columnIndex=0;   
   for(intj=0;j<columnNum;j++)   
   {                   
   columnIndex++;             
   //注意这个在导出的时候加了“\t”的目的就是避免导出的数据显示为科学计数法。可以放在每行的首尾。    
   xlApp.Cells[rowIndex,columnIndex]=Convert.ToString(listView.Items[i].SubItems[j].Text)+"\t";     
   }        
   }       
   //例外需要说明的是用strFileName,Excel.XlFileFormat.xlExcel9795保存方式时当你的Excel版本不是95、97而是2003、2007时导出的时候会报一个错误:异常来自HRESULT:0x800A03EC。解决办法就是换成strFileName,Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal。          
   xlBook.SaveAs(strFileName,Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);  
   xlApp=null;          
   xlBook=null;       
   MessageBox.Show("OK");      
   }  
   }