/// <summary>
    /// 将数据导入到Excel
    /// </summary>
    /// <param name="ds">
    /// 需要生成Excel的数据源
    /// DataSet->DataTable->TableName为页(Sheet)名字
    /// DataTable->Column->ColumnName为列名
    /// </param>
    /// <param name="strFilenamePath">生成后文件保存的全路径</param>
    /// <returns></returns>
    public bool ImportToExcel(DataSet ds, string strFilenamePath)
    {
        if (ds.Tables.Count == 0)
            return false;

try
        {
            Microsoft.Office.Interop.Excel.ApplicationClass objApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
            Microsoft.Office.Interop.Excel._Workbook objWorkbook;//工作薄
            Microsoft.Office.Interop.Excel._Worksheet objWorksheet;//工作页
            objWorkbook = objApp.Workbooks.Add(true);

object objMissing = System.Reflection.Missing.Value;

#region 添加数据

for (int i = 0; i < ds.Tables.Count; i++)
            {
                objWorksheet = (Microsoft.Office.Interop.Excel._Worksheet)objWorkbook.ActiveSheet;

//书签名字为表名
                objWorksheet.Name = ds.Tables[i].TableName;

//第一行显示表的列名
                for (int j = 0; j < ds.Tables[i].Columns.Count; j++)
                {
                    objApp.Cells[1, j + 1] = ds.Tables[i].Columns[j].ColumnName;
                }

//正文内容,从第二行开始
                for (int rows = 0; rows < ds.Tables[i].Rows.Count; rows++)
                {
                    for (int cols = 0; cols < ds.Tables[i].Columns.Count; cols++)
                    {
                        objApp.Cells[rows + 2, cols + 1] = ds.Tables[i].Rows[rows][cols].ToString();
                    }
                }

if (i < ds.Tables.Count - 1)
                {
                    objApp.Sheets.Add(objMissing, objMissing, 1, Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
                }
            }

#endregion

objApp.Visible = true;

//将Excel保存到指定路径
            objWorkbook.SaveAs(
                strFilenamePath, objMissing, objMissing, objMissing, objMissing,
                objMissing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, objMissing,
                objMissing, objMissing, objMissing, objMissing);

objApp.Quit();

return true;
        }
        catch (Exception ex)
        {
            string strEXMessage = ex.Message;

return false;
        }
    }

[转载]DataSet导入到Excel文件的更多相关文章

  1. 导入导出Excel文件

    搭建环境 先新建web project ,然后Add Struts Capabilties: 下载导入导出Excel所需的jar包: poi-3.8-20120326.jar包  :  http:// ...

  2. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])    本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   ...

  3. 【转】 (C#)利用Aspose.Cells组件导入导出excel文件

    Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...

  4. (C#)利用Aspose.Cells组件导入导出excel文件

    Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...

  5. ASP.NET Core导入导出Excel文件

    ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...

  6. C#将数据导入到excel文件

    最近在做C#对excel的操作程序,简单的与datagridview的交互如下 using System;using System.Collections.Generic;using System.C ...

  7. java中使用poi导入导出excel文件_并自定义日期格式

    Apache POI项目的使命是创造和保持java API操纵各种文件格式基于Office Open XML标准(OOXML)和微软的OLE复合文档格式(OLE2)2.总之,你可以读写Excel文件使 ...

  8. 在ASP.NET Core中使用EPPlus导入出Excel文件

    这篇文章说明了如何使用EPPlus在ASP.NET Core中导入和导出.xls/.xlsx文件(Excel).在考虑使用.NET处理excel时,我们总是寻找第三方库或组件.使用Open Offic ...

  9. java导入导出Excel文件

    package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...

随机推荐

  1. C# 线程(三):如何操纵一个线程

    From : http://kb.cnblogs.com/page/42529/ 下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可.(线程入口使程序知道该让这个线程干什 ...

  2. 改变bootstarp图标水平方向

    我一开始是以为bootstarp已经自定义了方向的类的,但是我查阅了好久都没有看到,我这里用的是CSS3的旋转180° 1:HTML <i class="icon-thumbs-dow ...

  3. iOS - OC Struct 结构体

    1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体 ...

  4. iOS - UIRefreshControl 刷新数据

    前言 NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIRefreshControl : UIControl 1.UIRefresh ...

  5. 关于Java控制台输入输出乱码问题

    产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误( ...

  6. oracle linux 下卸载

    1. 关闭数据库 shutdown immeidate 2. 停止 Listener lsnrctl stop 3. 停止http服务(可选) service httpd stop 4. 用su或者重 ...

  7. ubuntu 14.0.04 通过自启动脚本实现主机和虚拟机的文件夹共享

    首先要先设置主机ip为固定ip: 1.vi /etc/rc.local,进入vi界面,在尾部增加一行代码: mount -t cifs -o username=share,password=12345 ...

  8. Android Contacts (android通讯录读取)-content provider

    Content Provider 在数据处理中,Android通常使用Content Provider的方式.Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据 ...

  9. android下基本json串的生成与解析

    以前就用过json串,不过是在java环境下面,如今转移到android环境下,java里面生成解析json串的jar包与android中自带的冲突,所以也只能用安卓自带的.   先前查网上的资料,感 ...

  10. POJ 3181 Dollar Dayz && Uva 147 Dollars(完全背包)

    首先是 Uva 147:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_p ...