//多个DataSet导出Excel文件
public static void DataSetToExcel(DataSet p_ds,string strSavePath)
{
int l_intSheetIndex=;//多个DataSet导出多个Excel,针对Excel文件中的第一个Sheet
//实例化Excel对象
Microsoft.Office.Interop.Excel.Application app=new Microsoft.Office.Interop.Excel.Application();
//根据Excel对象新建Excel文件
Microsoft.Office.Interop.Excel.Workbook book=app.Workbooks.Add(true);
try
{
foreach(DataTable dt in p_ds.Tables)
{
if(dt!=null && dt.Rows.Count>)
{
object missing=System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Worksheet sheet;
//判断Excel文件是否存在Sheet
//1.不存在就新建Sheet
//2.存在就开启对应Sheet
if(book.Worksheets.Count < l_intSheetIndex)
{
//新建Sheet
sheet=(Microsoft.Office.Interop.Excel.Worksheet)book.Worksheets.Add(Type.Missing,book.Worksheets[book.Worksheets.Count],,Type.Missing);
}
//开启对应Sheet
sheet=(Microsoft.Office.Interop.Excel.Worksheet)book.Worksheets.get_Item(l_intSheetIndex);
//设置Sheet名
sheet.Name=dt.TableName; //取得区域 --取得区域的方式 1.设置整列 2.设置使用的区域
//整列
//Range column = ((Range)worksheet.Cells[1, 1]).EntireColumn;(选取A列;方法:先选取A1单元格,然后选取A1单元格所在的这一整列。)
//使用的区域
Microsoft.Office.Interop.Excel.Range l_range=sheet.Range[sheet.Cells[,],sheet.Cells[dt.Rows.Count+,dt.Columns.Count]];
//设置区域格式“@”是文本格式
l_range.NumberFormatLocal="@";
int i=;
foreach(DataColumn dc in dt.Columns)
{
sheet.Cells[,i+]=dc.ColumnName;
i++;
}
int j=;
foreach(DataRow dr in dt.Rows)
{
int k=;
foreach(DataColumn dc in dt.Columns)
{
sheet.Cells[j+,k+]=dr[k].ToString();
k++;
}
}
book.Saveed=true;
}
l_intSheetIndex++;
}
((Microsoft.Office.Interop.Excel.WorkSheet)book.Worksheets.get_Item()).Select();
book.SaveAs(strSavePath);
book.Close(Type.Missing,Type.Missing,Type.Missing);
}
catch(Exception ex)
{
throw ex;
}
finally
{
app.Quit();
IntPtr t=new IntPtr(app.Hwnd);
int d=;
GetWindowThreadProcessId(t,out d);
System.Diagenostics.Process p=System.Diagnostics.Process.GetProcessById(d);
p.Kill();
}
} [DllImport("User32.dll",CharSet=CharSet.Auto)]
Public static extern int GetWindowThreadProcessId(IntPtr hwnd,out int ID);

C# DataSet导出Excel的更多相关文章

  1. NPOI DataSet导出excel

    /// <summary> /// DataSet导出到Excel的MemoryStream /// </summary> /// <param name="d ...

  2. DataSet导出Excel,比以往的方法导出的Excel外观更加好看

    原文发布时间为:2010-06-21 -- 来源于本人的百度文章 [由搬家工具导入] ======目前方法=========== #region 生成Excel/// <summary>/ ...

  3. 【C#-导出Excel】DataSet导出Excel

    1.添加引用 2.封装方法 using System; using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPO ...

  4. xml方式将dataset导出excel

    using System;using System.Collections;using System.Collections.Generic;using System.Data;using Syste ...

  5. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续篇)

    上周六我发表的文章<分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility>受到了大家的热烈支持与推荐,再此表示感谢,该ExcelUtility ...

  6. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility

    1. ExcelUtility功能:  1.将数据导出到EXCEL(支持XLS,XLSX,支持多种类型模板,支持列宽自适应)  类名:ExcelUtility. Export  2.将EXCEL ...

  7. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  8. [转] Asp.Net 导出 Excel 数据的9种方案

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  9. NPOI导出Excel帮助类

    工具类 using System; using System.Collections.Generic; using System.Data; using System.IO; using System ...

随机推荐

  1. Spring学习笔记:Spring整合Mybatis学习PPT(三:整合思路)

    三.Spring-Mybatis的整合思路

  2. Python基础学习总结(三)

    4.if语句 If语句可以检查判定当前条件,并执行相应措施. if a in A: if a 条件: 执行命令1 4 else: 执行命令2 if判断条件还可以简写 if x: print('True ...

  3. 问题小记(MyBatis传参出现的小问题)

    问题一:在MyBatis中注解@Param和ParameterType不能一起用,会报错Parameter 'XXX' not found. Available parameters are [1, ...

  4. python之from 和import执行过程分析

    原文链接:http://blog.csdn.net/lis_12/article/details/52883729 问题1 同一个目录下,有两个Python文件,A.py,B.py #A.py fro ...

  5. freemarker生成word,表格分页

    在做项目的过程中,使用到了freemarker生成word.又有一个需求,明细的要确定有多少页,这就用到了换页的xml标签了,找了我好久 <w:p ><w:r><w:br ...

  6. 10.31NOIP模拟赛解题报告

    心路历程 预计得分:\(100 +100 +80\) 实际得分:\(30 + 100 + 80\) 天天挂分..感觉我noip要凉.. T1不难,但是太坑了 T2不难 T3不难,但是在小机房考试脑子都 ...

  7. 【Android】16.0 UI开发(七)——列表控件RecyclerView的点击事件实现

    1.0 在各布局的基础上,修改ProvinceAdapter.java的代码: package com.example.recyclerviewtest; import android.support ...

  8. webservice使用windows身份验证,ajax请求报错401未授权的解决办法

    $.ajax({ type: "GET", url: service_url, dataType: "xml", data: "ParamId=&qu ...

  9. js-滚动到指定位置导航栏固定顶部

    最近整理一下之前做的一个项目,把滚动条动态固定顶部的代码整理出来和大家分享,上代码 <!DOCTYPE html> <html> <head> <meta c ...

  10. python SQLAchemy多外键关联

    关联同一张表的两个字段 Customer表有2个字段都关联了Address表 创建表结构 orm_many_fk.py 只创建表结构 from sqlalchemy import Integer, F ...