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

 更新时间:2013年04月26日 15:37:48   作者:  
首先 你需要添加引用Microsoft Excel 11.0 Object Library
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

添加方法:选择项目->引用->右击“添加引用”->选择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");      
    }  
    }

相关文章

  • C#简单输出日历的方法

    C#简单输出日历的方法

    这篇文章主要介绍了C#简单输出日历的方法,涉及C#针对日期与时间的简单操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • C# 中的List.Sort()--集合排序方法全面解析

    C# 中的List.Sort()--集合排序方法全面解析

    这篇文章主要介绍了C# 中的List.Sort()--集合排序方法全面解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#设置开机启动项、取消开机启动项

    C#设置开机启动项、取消开机启动项

    这篇文章主要介绍了C#设置开机启动项、取消开机启动项,本文通过修改注册实现,并给出操作代码,需要的朋友可以参考下
    2015-06-06
  • C# 泛型List排序的实现

    C# 泛型List排序的实现

    本文主要介绍了C# 泛型List排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • c#读写ini配置文件示例

    c#读写ini配置文件示例

    虽然c#里都是添加app.config 并且访问也很方便 ,有时候还是不习惯用他。那么我们来做个仿C++下的那种ini配置文件读写吧
    2014-04-04
  • C#实现定时关机小应用

    C#实现定时关机小应用

    这篇文章主要为大家详细介绍了C#实现定时关机小应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • c# 基于任务的异步编程模式(TAP)的异常处理

    c# 基于任务的异步编程模式(TAP)的异常处理

    这篇文章主要介绍了c# 基于任务的异步编程模式的异常处理方法,帮助大家更好的理解和学习c#
    2020-11-11
  • C#类中的属性使用总结(详解类的属性)

    C#类中的属性使用总结(详解类的属性)

    属性是一种类的成员,它的实现类似函数,访问类似字段。它的作用是提供一种灵活和安全的机制来访问,修改私有字段。所以属性必须依赖于字段
    2014-03-03
  • C#策略模式(Strategy Pattern)实例教程

    C#策略模式(Strategy Pattern)实例教程

    这篇文章主要介绍了C#策略模式(Strategy Pattern),以一个简单的实例讲述了C#策略模式的实现方法,包括策略模式的用途以及具体实现方法,需要的朋友可以参考下
    2014-09-09
  • C#实现的封装CURD到SqlHelper类用法简单分析

    C#实现的封装CURD到SqlHelper类用法简单分析

    这篇文章主要介绍了C#实现的封装CURD到SqlHelper类用法,涉及数据库相关配置方法及SqlHelper类的简单使用技巧,代码中包含了较为详尽的注释便于理解,需要的朋友可以参考下
    2017-11-11

最新评论


http://www.vxiaotou.com