现在的位置: 首页 > 综合 > 正文

[转]将c#中datagridview中的数据导出到excel中

2013年10月04日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 评论关闭

Microsoft.Office.Interop.Excel命名空间要添加什么引用

 

首先:Microsoft.Office.Interop.Excel命名空间要添加什么引用

            //这一步我自己做了,但是还是不好使,好使是在更新excel的对.net支持后好的就是下面的图形说明

       visual Studio 2005命令提示工具中,定位到Excel安装目录,运行“TlbImp EXCEL.EXE”命令,把Excel.exe编译为Excel.dll。这一步会在你的机器上面的安装Office的目录下面的 Office11office2003)目录下生成Excell.dll,所以在引用的时候要到这个目录下面来找Excel.dll

       在项目的引用节点单击右键,在弹出的菜单中单击添加引用...在弹出的对话框中单击COM项,找到Microsoft Excel 11.0 Object Library并单击选中,然后单击选择按钮,如图引用Excel2003”。从中我们可以看出是引用的Excel.Exe文件,这是 Excel2003版。Excel2000Excel2002Excel XP COM项见“Excel版本对照表

打开Visual Studio .Net2003命令提示,运行 TlbImp Excel.EXE Interop.Excel.dll

如果是Excel2000,则 TlbImp Excel9.olb Interop.Excel.dll

然,第一参数Excel.EXE(Excel9.olb)要指定目录(Office2000安装目录),如果不指定,需要把它拷贝到VS.Net安装路径 下如C:/Visual Studio.Net/SDK/v1.1/Bin;同理,第二参数Interop.Excel.dll是生成的对应的动态库,如果不指定目录,默认生成在 VS.Net安装路径BIN ,你可以用你自己喜欢的名字取Interop.Excel.dll,生成之后你就可以在VS.Net开发环境项目中添加对它的引用了。

Tlbimp.exe为类型库导入程序,它将 COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义,关于它的详细使用参见MSDN

用第一种方法和第二种方法引用的库和默认文件目录为分别如下:

Excel 2000

Microsoft Excel 9.0 Object Library

C:/Program Files/Microsoft Office/Office/EXCEL9.OLB

Excel 2002(XP)

Microsoft Excel 10.0 Object Library

C:/Program Files/Microsoft Office/OFFICE10/EXCEL.EXE

Excel 2003

Microsoft Excel 11.0 Object Library

C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE

文件/版本

Interop.Excel.dll

Interop.Office.dll

Interop.VBIDE.dll

添加引用/COM组件

2000

V1.3.0.0

V2.1.0.0

V5.3.0.0

Microsoft Excel 9.0 Object Library(EXCEL9.OLB)

2002(XP)

V1.4.0.0

V2.2.0.0

V5.3.0.0

Microsoft Excel 10.0 Object Library(Excel.EXE文件)

2003

V1.5.0.0

V2.3.0.0

V5.3.0.0

Microsoft Excel 11.0 Object Library(Excel.EXE文件)

C#操作Excel:不存在类型或命名空间名称Interop

在实际开发过程中,我们经常会对Excel表进行操作。相信大家都都已经很熟悉C#操作Excel的步骤:添加引用->COM>Microsoft Office Excel 11 Object

但是,最近我按照上述步骤添加完引用后,出现了·命名空间“Microsoft.Office” 中不存在类型或命名空间名称“Interop”(是缺少程序集引用吗?)·的错误,查也很多资料,都没有解决,给开发过程造成了障碍。

问题原因

导致这个问题的原因是安装Office时没有安装“.Net可编程性支持组件。

解决方法

1、打开控制面板,更改Office的安装,选中下图中的红色方框内:选择应用程序的高级定义;

2、下一步之后,按照下图选中安装选项中的“.Net可编程性支持项,一路下上步至安装完毕;

3、重新添加引用。

OK!问题解决!

c# datagridview 导出excel 收藏
准备工作就是可以分页的DataGridView,和两个按钮,一个用来导出当前页数据到Excel,一个用来导出全部数据到Excel

没有使用SaveFileDialog,但却可以弹出保存对话框来

先做导出当前页数据到Excel

DataGridView命名为dataGridView1

C#代码
#region
导出当前页到Excel  

 

//按下导出按钮  

private void button7_Click(object sender, EventArgs e)  

{  

    print(dataGridView1);  

}  

public void print(DataGridView dataGridView1)  

{  

    //导出到execl  

    try 

    {  

        //没有数据的话就不往下执行  

        if (dataGridView1.Rows.Count == 0)  

            return;  

        //实例化一个Excel.Application对象  

        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();  

 

        //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写  

        excel.Visible = false;  

                  

        //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错  

    excel.Application.Workbooks.Add(true);                

        //生成Excel中列头名称  

        for (int i = 0; i < dataGridView1.Columns.Count; i++)  

        {  

            excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;  

        }  

        //DataGridView当前页的数据保存在Excel  

        for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)  

        {  

            for (int j = 0; j < dataGridView1.Columns.Count; j++)  

            {  

                if (dataGridView1[j, i].ValueType == typeof(string))  

                {  

                    excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();  

               }  

                else 

抱歉!评论已关闭.