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

所属分类: 软件编程 / C#教程 阅读数: 67
收藏 0 赞 0 分享

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

复制代码 代码如下:

    private void 导出数据_Click(object sender, EventArgs e) 
    {     
    ExportToExecl(); 
    }  
    /// <summary>   
    /// 执行导出数据
    /// </summary>
    public void ExportToExecl()
    {     
    System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog();  
    sfd.DefaultExt = "xls";   
    sfd.Filter = "Excel文件(*.xls)|*.xls";     
    if (sfd.ShowDialog() == DialogResult.OK)  
    {          
    DoExport(this.lstPostion, sfd.FileName); 
    }   
    }   
    /// <summary>
    /// 具体导出的方法
    /// </summary>  
    /// <param name="listView">ListView</param>  
    /// <param name="strFileName">导出到的文件名</param>  
    private void DoExport(ListView listView, string strFileName)   
    {      
    int rowNum = listView.Items.Count;  
    int columnNum = listView.Items[0].SubItems.Count;
    int rowIndex = 1;      
    int columnIndex = 0;      
    if (rowNum == 0 || string.IsNullOrEmpty(strFileName))  
    {           
    return;      
    }      
    if (rowNum > 0)   
    {         
    Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); 
    if (xlApp == null)       
    {            
    MessageBox.Show("无法创建excel对象,可能您的系统没有安装excel"); 
    return;         
    }         
    xlApp.DefaultFilePath = "";   
    xlApp.DisplayAlerts = true;       
    xlApp.SheetsInNewWorkbook = 1;     
    Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);  
    //将ListView的列名导入Excel表第一行           
    foreach (ColumnHeader dc in listView.Columns)  
    {            
    columnIndex++;     
    xlApp.Cells[rowIndex, columnIndex] = dc.Text;  
    }           
    //将ListView中的数据导入Excel中       
    for (int i = 0; i < rowNum; i++)     
    {             
    rowIndex++;     
    columnIndex = 0;   
    for (int j = 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");      
    }  
    }

更多精彩内容其他人还在看

WPF仿三星手机充电界面实现代码

这篇文章主要为大家详细介绍了WPF仿三星手机充电界面实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

浅谈C#各种数组直接的数据复制/转换

下面小编就为大家带来一篇浅谈C#各种数组直接的数据复制/转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

C#访问SQLServer增删改查代码实例

这篇文章主要为大家详细介绍了C#访问SQLServer增删改查代码实例,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#根据身份证号码判断出生日期和性别

这篇文章主要为大家详细介绍了C#根据身份证号码判断出生日期和性别的方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C# 向Word中设置/更改文本方向的方法(两种)

在一般情况下word中输入的文字都是横向的,今天小编给大家带来两种方法来设置更改文本方向的方法,非常不错,对c# word 更改文本方向的知识感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

让C# Excel导入导出 支持不同版本Office

让C# Excel导入导出,支持不同版本的Office,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#设置自定义文件图标实现双击启动(修改注册表)

这篇文章介绍的是利用C#设置自定义文件图标,然后实现双击启动的功能,文章给出了示例代码,介绍的很详细,有需要的可以参考借鉴。
收藏 0 赞 0 分享

C#两个相同属性的类赋值方法

这篇文章主要介绍了C#两个相同属性的类赋值方法的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

C#中ListView控件实现窗体代码

这篇文章主要介绍了C#中ListView控件实现窗体的核心代码,非常不错,具有参考借鉴价值,对c#listview相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

浅谈C# 序列化与反序列化几种格式的转换

下面小编就为大家带来一篇浅谈C# 序列化与反序列化几种格式的转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多