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 ...
随机推荐
- BI简介
一.BI简介 BI全称是business intelligence,直译过来就是商业智能.BI表示的是一个体系,一套完整的解决方案.主要用于数据的整合.分析.挖掘等,为帮助企业决策而提供如报表.预测分 ...
- C++中细节知识点
C++中常识小知识: 1.在C++的类中成员变量与成员函数默认为私有的,结构体中的成员变量与成员函数默认为公有的. 2.C++中this关键字是指针,指向当前对象. 3.在C++中一般类的成员变量与成 ...
- 20个实用javascript技巧及实践(二)
21. 使用逻辑AND/OR来处理条件语句 var foo =10; foo ==10&& doSomething();// is the same thing as if (foo ...
- Vue.js基础2
声明式渲染 Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div ...
- ArcGIS DataStore手册——管理篇
第二章:ArcGIS DataStore管理维护 1.备份管理 备份的目的在于发生原始数据损坏或其他突发情况时,可避免数据丢失,并可快速的使用备份数据来恢复,以保证服务仍可使用. 单机模式下,可使用D ...
- 【转载】javascript深入理解js闭包
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
- metasploit 连接database相关问题
我们首先去这个目录下看database.yml文件内容: 下图是我们看到的的信息 接着打开metasploit,运行db_connect 指令链接数据库.格式为: db_connect 用户名:密码@ ...
- 深入理解java的形参和实参
转载声明:本文转载自公众号「码匠笔记」. 前几天在头条上看到一道经典面试题,引发了一些思考.也是写这篇文章的导火索. 背景 请看题: public classMain{ publicsta ...
- SQL Server ->> SQL Server 2016功能改进之 -- Update Statistics
1) 以前SQL Server更新一张表/索引的间隔是固定的,创建时更新一次,到了500行时更新第二次,接下来就是呈百分比式的间隔去更新,距离数据修改量达到表的行数量的的20%再次触发更新.但是这样的 ...
- Asp.net让某一页设置成gb2312或utf-8的方法
有些需求,一定要用到utf-8格式,在web.config里面设置<globalization requestEncoding="utf-8" ...