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 ...
随机推荐
- elixir 高可用系列(五) Supervisor
概述 OTP 平台的容错性高,是因为它提供了机制来监控所有 processes 的状态,如果有进程出现异常, 不仅可以及时检测到错误,还可以对 processes 进行重启等操作. 有了 superv ...
- Xamarin开发Android笔记:TextView行间距设定
TextView 在使用TextView的时候会遇到调整行间距的问题,可通过Layout文件添加属性完成,具体属性如下: //设置行间距,如”3dp”. android:lineSpacingExtr ...
- Winform(C#.NET)自动更新组件的使用及部分功能实现(续)
接昨天的文章Winform(C#.NET)自动更新组件的使用及部分功能实现 强制更新的实现部分: 将DownloadConfirm窗体修改成单纯的类 public class DownloadConf ...
- Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新
CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...
- C语言 数组 列优先 实现
C语言数组结构列优先顺序存储的实现 (GCC编译). 从行优先转换为列优先存储方式, 与行优先相比, 不同之处在于改变了数组维界基址的先后顺序, 从而改变了映像函数常量基址. /** * @brief ...
- C语言 线性表 双向链式结构 实现
一个双向链式结构实现的线性表 duList (GCC编译). /** * @brief 线性表双向链表结构 * @author wid * @date 2013-10-28 * * @note 若代码 ...
- [ACM_数学] LA 3708 Graveyard [墓地雕塑 圈上新加点 找规律]
Description Programming contests became so popular in the year 2397 that the governor of New Earck ...
- [ACM_图论] The Perfect Stall 完美的牛栏(匈牙利算法、最大二分匹配)
描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们 ...
- 1119 网页布局,css写下拉列表
<style type="text/css"> *{ margin:0px; padding:0px;} #body{ width:1000px; height:200 ...
- duilib进阶教程 -- 响应windows原生消息和自定义消息(13)
一.windows原生消息 同样,入门教程只是给出了响应windows原生消息的方法,并没给出例子,这里以自适应屏幕分辨率为例.迅雷播放器虽然可以在启动的时候自动调整窗口大小,但是当屏幕分辨率实时改变 ...