C# DataSet导出Excel
//多个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的更多相关文章
- NPOI DataSet导出excel
/// <summary> /// DataSet导出到Excel的MemoryStream /// </summary> /// <param name="d ...
- DataSet导出Excel,比以往的方法导出的Excel外观更加好看
原文发布时间为:2010-06-21 -- 来源于本人的百度文章 [由搬家工具导入] ======目前方法=========== #region 生成Excel/// <summary>/ ...
- 【C#-导出Excel】DataSet导出Excel
1.添加引用 2.封装方法 using System; using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPO ...
- xml方式将dataset导出excel
using System;using System.Collections;using System.Collections.Generic;using System.Data;using Syste ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续篇)
上周六我发表的文章<分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility>受到了大家的热烈支持与推荐,再此表示感谢,该ExcelUtility ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility
1. ExcelUtility功能: 1.将数据导出到EXCEL(支持XLS,XLSX,支持多种类型模板,支持列宽自适应) 类名:ExcelUtility. Export 2.将EXCEL ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
- [转] Asp.Net 导出 Excel 数据的9种方案
湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...
- NPOI导出Excel帮助类
工具类 using System; using System.Collections.Generic; using System.Data; using System.IO; using System ...
随机推荐
- swoole安装
转自:http://blog.csdn.net/u014207604/article/details/49926207 Windows 下安装 swoole 具体步骤: Swoole,原本不支持在Wi ...
- Java线程面试题 Top 50 (个人总结)(转)
问答总结: 1. JDK1.5引入了哪些更高阶的并发工具 2. Java中CyclicBarrier 和 CountDownLatch有什么不同? CountDownLatch和CyclicBar ...
- SQL2008使用with求余额表,流水账方式
1.先准备数据,将要求余额的表数据插入临时表 SELECT Serial, VoucherNum, SubjectNum, SubjectName, Direction, Amount INTO #T ...
- mysql的with rollup
无意间发现了mysql的with rollup函数(用在group by 函数后面) 测试 1. SELECT NAME,DATE,score FROM stu 结果是 2. SELECT NAME, ...
- 01HTMl-<base>标签
一.base用于定义页面链接的打开方式 <base target="_blank"/> 定义页面链接默认打开方式,base通过target属性告诉浏览器如何打开页面. ...
- org.apache.ibatis.binding.BindingException
1.异常提示: org.apache.ibatis.binding.BindingException: Mapper method 'com.artup.dao.WorksDao.selectWork ...
- js-滚动到指定位置导航栏固定顶部
最近整理一下之前做的一个项目,把滚动条动态固定顶部的代码整理出来和大家分享,上代码 <!DOCTYPE html> <html> <head> <meta c ...
- React Native之React速学教程(中)
概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解 ...
- Java 之初(1)
省赛结束之后有相当长一段空闲时间,于是就想先提前自学一点Java语言的知识,在这里纪录一下学习过程,希望能给自学Java的同学提供一点小帮助!(当然,也能方便我以后的复习用^_^) 在学习过程中有什么 ...
- icon-font 字体图标的引用
1.font-class引用 font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题. 与unicode使用方式相比,具有如下特点: 兼容性良好, ...