C#导出Excel,并且设置Excel单元格格式,合并单元格.
注:要添加COM组件 Microsoft Excel 11.0 Object Library 引用。
具体代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using Excel;
using System.Reflection;
using System.Data;
using System.Data.OleDb;
namespace RecruitmentReport
{
classdoExcel
{
enumColumnName {A1=1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1}
/// <summary>
/// 导出到Execl
/// </summary>
/// <param name="dt">数据集</param>
/// <param name="strSheetName">工作部名称</param>
/// <param name="pathloading">保存路径</param>
/// <param name="title">标题名</param>
publicvoid doExport(DataSet dt, string strSheetName, string pathloading, string title)
{
int columnIndex = dt.Tables[0].Columns.Count;
string cName =((ColumnName)columnIndex).ToString();
Excel.Application excel = new Excel.Application(); //Execl的操作类
Excel.Workbook bookDest =(Excel.Workbook)excel.Workbooks.Add(Missing.Value);
Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet
sheetDest.Name = strSheetName;
for (int i = bookDest.Worksheets.Count; i >1; i--)
{
Worksheet wt = (Worksheet)bookDest.Worksheets[i];
if (wt.Name != strSheetName)
{
wt.Delete();
}
}
int rowIndex = 2;
int colIndex = 0;
Range rngRow = (Excel.Range)sheetDest.Columns[1, Type.Missing];
rngRow.UseStandardWidth = 70;
Range rngA = (Range)sheetDest.Columns["A", Type.Missing];//设置单元格格式
rngA.NumberFormatLocal = "@";//字符型格式
Range rngJ = (Range)sheetDest.Columns["J", Type.Missing];
rngJ.NumberFormatLocal = "@";
Range rngQ = (Range)sheetDest.Columns["Q", Type.Missing];
rngQ.NumberFormatLocal = "@";
Range rngE = (Range)sheetDest.Columns["E", Type.Missing];
rngE.NumberFormatLocal = @"yyyy-mm-dd";//日期型格式
sheetDest.get_Range("A1", cName).Merge(sheetDest.get_Range("A1", cName).MergeCells);//合并单元格
excel.Application.Workbooks.Add(true);
try
{
Range rngfirst = (Excel.Range)sheetDest.Cells[1, 1];
sheetDest.Cells[1, 1] = title + System.DateTime.Now.Month.ToString().PadLeft(2, '0') + System.DateTime.Now.Day.ToString().PadLeft(2, '0') + System.DateTime.Now.Year.ToString();
rngfirst.Font.Size = 14;
rngfirst.Font.Name = "Calibri";//设置单元格字体
rngfirst.RowHeight = 18;
rngfirst.HorizontalAlignment = XlHAlign.xlHAlignCenter;
rngfirst.Font.Bold = true;
rngfirst.Borders.LineStyle = XlLineStyle.xlContinuous;//设置单元格边框
foreach (DataColumn col in dt.Tables[0].Columns)
{
colIndex++;
Range rng = (Excel.Range)sheetDest.Cells[2, colIndex];
sheetDest.Cells[2, colIndex] = col.ColumnName;//Execl中的第一列把DataTable的列名先导进去
rng.Font.Name = "Calibri";
rng.Font.Size = 11;
rng.Font.Bold = true;
rng.Font.Color = ConsoleColor.Blue;
rng.HorizontalAlignment = XlHAlign.xlHAlignCenter;
rng.RowHeight = 15;
rng.Borders.LineStyle = XlLineStyle.xlContinuous;
rng.ColumnWidth = 15.5;
// sheetDest.Range[1, colIndex].Font.Bold = false;
}
//导入数据行
foreach (DataRow row in dt.Tables[0].Rows)
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in dt.Tables[0].Columns)
{
colIndex++;
sheetDest.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
Range rng01 = (Excel.Range)sheetDest.Cells[rowIndex, colIndex];
rng01.HorizontalAlignment = XlHAlign.xlHAlignCenter;
rng01.Borders.LineStyle = XlLineStyle.xlContinuous;
rng01.RowHeight = 15;
rng01.Font.Name = "Calibri";
rng01.Font.Size = 11;
}
}
}
catch { thrownewException(); }
bookDest.Saved = true;
bookDest.SaveCopyAs(pathloading);//保存
excel.Quit();
excel = null;
GC.Collect();//垃圾回收
}
}
}
http://hi.baidu.com/jimpanf/item/6773171847b46e14e2f98637
C#导出Excel,并且设置Excel单元格格式,合并单元格.的更多相关文章
- Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式
		Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式 解决: xlwt 中设置单元格样式主要 ... 
- poi导出Excel报表多表头双层表头、合并单元格
		效果图: controller层方法: /** * * 导出Excel报表 * @param request * @return * */ @ ... 
- 复杂的POI导出Excel表格(多行表头、合并单元格)
		poi导出excel有两种方式: 第一种:从无到有的创建整个excel,通过HSSFWorkbook,HSSFSheet HSSFCell, 等对象一步一步的创建出工作簿,sheet,和单元格,并添加 ... 
- 利用PHPExcel导出Excel并设置Excel格式以及数据源
		浏览:23969 发布日期:2013/07/24 分类:技术分享 代码有点长,读起来有点累.先来个截图 导出的Excel太宽了,所以将后面的列宽重新调整了再截的图 功能包括: 1.设置单元格格式,包括 ... 
- C# Excel行高、列宽、合并单元格、单元格边框线、冻结
		private _Workbook _workBook = null;private Worksheet _workSheet = null;private Excel.Application _ex ... 
- python xlwt 设置单元格样式-合并单元格
		xlwt模块详解--合并单元格 import xlwtworkbook = xlwt.Workbook()worksheet = workbook.add_sheet('My sheet')# 合并第 ... 
- c# Excel 行高、列宽、合并单元格、单元格边框线、冻结
		http://www.2cto.com/kf/201007/52724.html 新增选择整列: Range = ((Range)(WALeTieSheet.Cells[1, PwCStartCol_ ... 
- 在Asp.Net MVC中使用NPOI插件实现对Excel的操作(导入,导出,合并单元格,设置样式,输入公式)
		前言 NPOI 是 POI 项目的.NET版本,它不使用 Office COM 组件,不需要安装 Microsoft Office,目前支持 Office 2003 和 2007 版本. 1.整个Ex ... 
- NPOI之Excel——合并单元格、设置样式、输入公式
		首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ... 
随机推荐
- SQL Server 处理树结构数据的一个示例
			没多少技术含量,在简单的系统里应用问题不大: 解决的问题是: 1.树结构数据的表设计: 2.对任意一个节点,找到他所有的上级节点 3.对任意一个节点,找到他所有的下级节点 这里的部分SQL是同事给的, ... 
- Dynamic CRM 2013学习笔记(三十五)自定义审批流6 - 审批通过后,再审批 - 二次审批
			最近有个特殊的需求,客户想做二次审批,就是审批通过后,再走一次审批流程.最开始一想,这还不简单,审批通过后,直接把状态改成draft就完了,后来一试,发现一堆问题,比如第一次审批完后,界面是不允许修改 ... 
- JBoss无规律自动关闭故障定位
			转载地址:http://blog.knowsky.com/264489.htm 最近遇到了几次JBoss无规律自动关闭的奇怪现象,通过history历史命令和last登录信息,都看不到有人操作过的迹象 ... 
- C语言中的内存分配与释放
			C语言中的内存分配与释放 对C语言一直都是抱着学习的态度,很多都不懂,今天突然被问道C语言的内存分配问题,说了一些自己知道的,但感觉回答的并不完善,所以才有这篇笔记,总结一下C语言中内存分配的主要内容 ... 
- Entity Framework后台采用分页方式取数据与AspNetPager控件的使用
			本文是一个对AspNetPager控件使用的笔记! 有关AspNetPager控件可以查看杨涛主页.这是一个开放的自定义ASP.NET控件,支持各种自定义的数据分页方式,使用很方便,而且功能也很强大, ... 
- Hive 安装配置
			系统:Ubuntu 64 bit系统 step1:创建hive文件目录,并在hive目录下创建tmp,warehouse 和 log目录: Step2:解压hive安装包: Step3:创建配置文件: ... 
- Linux kernel develop -- Hello World
			hello.c: #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h&g ... 
- 【UML】类图的几种关系总结
			在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Compositi ... 
- Leetcode 165 Compare Version Numbers
			题意:比较版本号的大小 有点变态,容易犯错 本质是字符串的比较,请注意他的版本号的小数点不知1个,有的会出现01.0.01这样的变态版本号 class Solution { public: int c ... 
- Liferay7 BPM门户开发之35: AssetTag的集成查询
			Tag是liferay中的Asset特性,可以用来对信息进行分类,在iferay中的Asset类型为: 1. Web Content(自定义内容) 2. Documents and Media(文档库 ... 
