DataGridView导出excel

本文参考网友江边孤岛(感谢原作者)的《WinForm中DataGrid扩展类 - 快速导出Excel文件,带保存对话框,并杀死进程。相对完美的解决方案!》(url:http://blog.csdn.net/jbgh608/archive/2007/08/29/1763517.aspx )而写,但本文是DataGridView导出Excel,DataGridView中的隐含列不导出。在贴出代码前几点说明如下:

1、添加Microsoft Excel 11.0 Object Library的引用后,在项目的引用列表中会多出3个引用项,分别是Excel、Microsoft.Office.Core、VBIDE;(当然添加Microsoft Word 11.0 Object Library的引用后,在项目的引用列表中也会多出3个引用项,分别是Word、Microsoft.Office.Core、VBIDE,即第一个是变化的,后两个是相同的,但如果你添加Microsoft Office 11.0 Object Library,那么仅有Microsoft.Office.Core)

微软的Office对象库包含:
Microsoft Access 11.0 Object Library
Microsoft Graph 11.0 Object Library
Microsoft Excel 11.0 Object Library
Microsoft Office 11.0 Object Library
Microsoft Outlook 11.0 Object Library
Microsoft PowerPoint 11.0 Object Library
Microsoft Word 11.0 Object Library

对于上面的对象库,微软是否提供了API文档?本人尚未找到。

2、文件是否已经打开的判断,网上很多是以独享的方式打开文件,如果出现异常则说明文件已经在使用中,我觉得这个判断不理想,不知道是否有更好的处理方法?

3、实测中发现执行设置Excel字体大小和将字体设置为粗体的语句耗时较长,不知道是本人机器环境的原因还是Excel的普遍问题?

4、原文杀死excel进程的处理方法并不得当,会将所有正在使用的excel都关闭掉。但导出excel确实会增加excel的进程,不妥。

一下是代码

调用方法为:

Export export  =   new  Export();
export.ToExcel(
this this .dgInOut,  " 收支账 " );

导出类源码:

using  System;
using  System.Collections.Generic;
using  System.Windows.Forms;
using  System.Text;
using  System.Diagnostics;
using  System.IO;
using  Microsoft.Office.Interop.Excel;

namespace  ST.FI
{
    
public class Export
    
{
        
//记录保存文件的名称(含路径)
        private string FullFileName = string.Empty;

        
保存对话框

        
导出Excel

        
杀死进程 
    }

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值