MyXls是一个操作Excel的开源类库,支持设置字体、列宽、行高(由BOSSMA实现)、合并单元格、边框、背景颜色、数据类型、自动换行、对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单格式的Excel文件十分快捷方便。

各种属性设置MyXls的样式,并附带示例程序的源代码。

        // 准备测试数据
List<PersonInfo> list = new List<PersonInfo>();
for (int i = ; i <= ; i++)
{
PersonInfo person = new PersonInfo()
{
RealName = "张" + i,
Gender = (i % == ? "男" : "女"),
Age = + (i % )
}; list.Add(person);
} int recordCount = ; // 要导出的记录总数
int maxRecordCount = ; // 每个sheet表的最大记录数
int sheetCount = ; // Sheet表的数目 XlsDocument xls = new XlsDocument();
xls.FileName = "MyXls-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; // 计算需要多少个sheet表显示数据
if (recordCount > maxRecordCount)
{
sheetCount = (int)Math.Ceiling((decimal)recordCount / (decimal)maxRecordCount);
} // Sheet标题样式
XF titleXF = xls.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
titleXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中
titleXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
titleXF.UseBorder = true; // 使用边框
titleXF.TopLineStyle = ; // 上边框样式
titleXF.TopLineColor = Colors.Black; // 上边框颜色
titleXF.LeftLineStyle = ; // 左边框样式
titleXF.LeftLineColor = Colors.Black; // 左边框颜色
titleXF.RightLineStyle = ; // 右边框样式
titleXF.RightLineColor = Colors.Black; // 右边框颜色
titleXF.Font.FontName = "宋体"; // 字体
titleXF.Font.Bold = true; // 是否加楚
titleXF.Font.Height = * ; // 字大小(字体大小是以 1/20 point 为单位的) // 列标题样式
XF columnTitleXF = xls.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
columnTitleXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中
columnTitleXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
columnTitleXF.UseBorder = true; // 使用边框
columnTitleXF.TopLineStyle = ; // 上边框样式
columnTitleXF.TopLineColor = Colors.Black; // 上边框颜色
columnTitleXF.BottomLineStyle = ; // 下边框样式
columnTitleXF.BottomLineColor = Colors.Black; // 下边框颜色
columnTitleXF.LeftLineStyle = ; // 左边框样式
columnTitleXF.LeftLineColor = Colors.Black; // 左边框颜色
columnTitleXF.Pattern = ; // 单元格填充风格。如果设定为0,则是纯色填充(无色),1代表没有间隙的实色
columnTitleXF.PatternBackgroundColor = Colors.Red; // 填充的底色
columnTitleXF.PatternColor = Colors.Default2F; // 填充背景色 // 数据单元格样式
XF dataXF = xls.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
dataXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中
dataXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
dataXF.UseBorder = true; // 使用边框
dataXF.LeftLineStyle = ; // 左边框样式
dataXF.LeftLineColor = Colors.Black; // 左边框颜色
dataXF.BottomLineStyle = ; // 下边框样式
dataXF.BottomLineColor = Colors.Black; // 下边框颜色
dataXF.Font.FontName = "宋体";
dataXF.Font.Height = * ; // 设定字大小(字体大小是以 1/20 point 为单位的)
dataXF.UseProtection = false; // 默认的就是受保护的,导出后需要启用编辑才可修改
dataXF.TextWrapRight = true; // 自动换行 // 遍历创建Sheet
for (int i = ; i <= sheetCount; i++)
{
// 根据计算出来的Sheet数量,一个个创建
// 行和列的设置需要添加到指定的Sheet中,且每个设置对象不能重用(因为可以设置起始和终止行或列,就没有太大必要重用了,这应是一个策略问题)
Worksheet sheet;
if (sheetCount == )
{
sheet = xls.Workbook.Worksheets.Add("人员信息表");
}
else
{
sheet = xls.Workbook.Worksheets.Add("人员信息表 - " + i);
} // 序号列设置
ColumnInfo col0 = new ColumnInfo(xls, sheet); // 列对象
col0.ColumnIndexStart = ; // 起始列为第1列,索引从0开始
col0.ColumnIndexEnd = ; // 终止列为第1列,索引从0开始
col0.Width = * ; // 列的宽度计量单位为 1/256 字符宽
sheet.AddColumnInfo(col0); // 把格式附加到sheet页上 // 姓名列设置
ColumnInfo col1 = new ColumnInfo(xls, sheet); // 列对象
col1.ColumnIndexStart = ; // 起始列为第2列,索引从0开始
col1.ColumnIndexEnd = ; // 终止列为第2列,索引从0开始
col1.Width = * ; // 列的宽度计量单位为 1/256 字符宽
sheet.AddColumnInfo(col1); // 把格式附加到sheet页上 // 性别列设置
ColumnInfo col2 = new ColumnInfo(xls, sheet); // 列对象
col2.ColumnIndexStart = ; // 起始列为第3列,索引从0开始
col2.ColumnIndexEnd = ; // 终止列为第3列,索引从0开始
col2.Width = * ; // 列的宽度计量单位为 1/256 字符宽
sheet.AddColumnInfo(col2); // 把格式附加到sheet页上 // 年龄列设置
ColumnInfo col3 = new ColumnInfo(xls, sheet); // 列对象
col3.ColumnIndexStart = ; // 起始列为第4列,索引从0开始
col3.ColumnIndexEnd = ; // 终止列为第4列,索引从0开始
col3.Width = * ; // 列的宽度计量单位为 1/256 字符宽
sheet.AddColumnInfo(col3); // 把格式附加到sheet页上 // 行设置
RowInfo rol1 = new RowInfo(); // 行对象
rol1.RowHeight = * ; // 行高
rol1.RowIndexStart = ; // 行设置起始列,索引从1开始
rol1.RowIndexEnd = (ushort)(maxRecordCount + ); //行设置结束列
sheet.AddRowInfo(rol1); // 把设置附加到sheet页上 // 合并单元格
//sheet.Cells.Merge(1, 1, 1, 4);
MergeArea titleArea = new MergeArea(, , , ); // 一个合并单元格实例(合并第1行、第1列 到 第1行、第4列)
sheet.AddMergeArea(titleArea); //填加合并单元格 // 开始填充数据到单元格
Cells cells = sheet.Cells; // Sheet标题行,行和列的索引都是从1开始的
Cell cell = cells.Add(, , "人员信息统计表", titleXF);
cells.Add(, , "", titleXF); // 合并单元格后仍需要设置每一个单元格,样式才有效
cells.Add(, , "", titleXF); // 合并单元格后仍需要设置每一个单元格,样式才有效
cells.Add(, , "", titleXF); // 合并单元格后仍需要设置每一个单元格,样式才有效
sheet.Rows[].RowHeight = * ; // 对指定的行设置行高 // 列标题行
cells.Add(, , "序号", columnTitleXF);
cells.Add(, , "姓名", columnTitleXF);
cells.Add(, , "性别", columnTitleXF); // 最右侧的列需要右边框,通过修改样式columnTitleXF的方式,还可以通过设置单元格属性的方式实现。
columnTitleXF.RightLineStyle = ;
columnTitleXF.RightLineColor = Colors.Black;
cells.Add(, , "年龄", columnTitleXF); sheet.Rows[].RowHeight = * ; // 对指定的行设置行高 // 行索引
int rowIndex = ; for (int j = ; j < maxRecordCount; j++)
{
// 当前记录在数据集合中的索引
int k = (i - ) * maxRecordCount + j; // 如果达到sheet最大记录数则跳出
if (k >= recordCount)
{
break;
} // 设置单元格的值
cells.Add(rowIndex, , k + , dataXF);
cells.Add(rowIndex, , list[k].RealName, dataXF);
cells.Add(rowIndex, , list[k].Gender, dataXF); // 最右侧的列需要右边框,通过给Cell设置属性的方式实现,因为并不是所有的单元格都需要设置,不能通过修改样式dataXF的方式
Cell lastCell = cells.Add(rowIndex, , list[k].Age, dataXF);
lastCell.RightLineStyle = ;
lastCell.RightLineColor = Colors.Black; // 行号递增
rowIndex++;
}
} // 在浏览器中输出Excel文件
xls.Send();
}

MyXls: 导出Excel的各种设置的更多相关文章

  1. MyXls导出Excel的各种设置

    MyXls是一个操作Excel的开源类库,支持设置字体.列宽.行高(由BOSSMA实现).合并单元格.边框.背景颜色.数据类型.自动换行.对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单 ...

  2. C#导出Excel,并设置简单格式

    protected void ExportExcel(DataTable dt) { string fileName = “FileName”; Microsoft.Office.Interop.Ex ...

  3. C#将网页数据导出Excel时编码设置

    public void DGToExcel() { Response.ClearContent(); Response.Charset = "GB2312";//内容编码 Resp ...

  4. NPOI导出EXCEL 打印设置分页及打印标题

    在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置  sheet1.FitToPage = false; 而 ...

  5. [转]NPOI导出EXCEL 打印设置分页及打印标题

    本文转自:http://www.cnblogs.com/Gyoung/p/4483475.html 在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方 ...

  6. NPOI、MyXls、Aspose.Cells 导入导出Excel(转)

    Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...

  7. 导出Excel之Epplus使用教程2(样式设置)

    导出Excel之Epplus使用教程1(基本介绍) 导出Excel之Epplus使用教程2(样式设置) 导出Excel之Epplus使用教程3(图表设置) 导出Excel之Epplus使用教程4(其他 ...

  8. 导出Excel之Epplus使用教程3(图表设置)

    导出Excel之Epplus使用教程1(基本介绍) 导出Excel之Epplus使用教程2(样式设置) 导出Excel之Epplus使用教程3(图表设置) 导出Excel之Epplus使用教程4(其他 ...

  9. 导出Excel之Epplus使用教程4(其他设置)

    导出Excel之Epplus使用教程1(基本介绍) 导出Excel之Epplus使用教程2(样式设置) 导出Excel之Epplus使用教程3(图表设置) 导出Excel之Epplus使用教程4(其他 ...

随机推荐

  1. GitHub菜鸟日志1——20160531

    好吧,事实上很早就知道有github这个东西了,然而就有一种莫名的力量一直阻止着我向这“未知的领域”涉足(which is called lazy). 然后,前略...总之,默默的就开始了github ...

  2. codeforces 732E(贪心)

    题目链接:http://codeforces.com/contest/732/problem/E 题意:有n台计算机,m个插座,每台计算机有一个值a[i],每个插座有一个值b[i],每个插座最多只能对 ...

  3. Java 查漏补缺

    摘自<老马说编程> 计算机程序的思维逻辑 (4) - 整数的二进制表示与位运算 Java中不支持直接写二进制常量,比如,想写二进制形式的11001,Java中不能直接写,可以在前面补0,补 ...

  4. C# xpath

    XPath最通俗的教程(ZZ)   以下是本人找到的最完整最易懂的XPath教程,不敢私藏,拿出来与大家分享.帮我点旁边的google广告呀. 实例 1基本的XPath语法类似于在一个文件系统中定位文 ...

  5. 一周学会go语言并应用 by王奇疏

    <一周学会go语言并应用> by王奇疏 ( 欢迎加入go语言群: 218160862 , 群内有实践) 点击加入 零.安装go语言,配置环境及IDE 这部分内容不多,请参考我的这篇安装环境 ...

  6. 问题:C++ 删除数组指针实用 delete []变量 汇编怎么实现的?

    问题:C++ 删除数组指针实用  delete []变量    汇编怎么实现的?

  7. WWDC 2014 发布会 Keynote 视频下载 3.6G 1080P地址

    我费尽九牛二虎之力,终于可以下载这个1080P高清的视频了,话说今天凌晨我是看的图文直播,现在终于有视频了,大家会不会很激动啊,好废话不多说,我把下载地址发给大家! 百度云:http://pan.ba ...

  8. 编辑距离及其动态规划算法(Java代码)

    编辑距离概念描述 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.一般情况下编辑操作包括: 将一个字符替换成另一个字符: 插入一个字符: 删除一个字 ...

  9. C++模板元编程(C++ template metaprogramming)

    实验平台:Win7,VS2013 Community,GCC 4.8.3(在线版) 所谓元编程就是编写直接生成或操纵程序的程序,C++ 模板给 C++ 语言提供了元编程的能力,模板使 C++ 编程变得 ...

  10. CentOS 系统安装

    1.安装时分区建立 建立/boot分区 500M /swap 10000M 剩余空间建立PV PV加入VG 建立LV 全部挂在到/ 2安装模式选择:基本安装 开发工具全部装,SERVER 全部不选,中 ...