博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用MyXls生成Excel报表(C#)
阅读量:5313 次
发布时间:2019-06-14

本文共 3615 字,大约阅读时间需要 12 分钟。

2010年08月09日 星期一 13:09
       MyXLS 是一个快速和简单的读写 Excel 文件的 .NET 组件,可用在 ASP.NET 网站和 .NET 应用程序中,无需安装 Excel 程序,支持 Excel 97 以及以后的版本。

       目前MyXls已经实现了单元格(cell)的格式设置,包括文本颜色、文本大小、字体、单位格边框、底色、列宽、行高,合并单元格,多个sheet页等功能。以下是MyXLS组件的一些用法:

1.创建一个Excel文档:

XlsDocument xls = new XlsDocument();

2.创建一个WorkSheet:

Worksheet ws = xls.Workbook.Worksheets.Add("WorkSheet1");

3.指定列格式:

ColumnInfo colInfo = new ColumnInfo(xls, ws);

colInfo.ColumnIndexStart = ;
colInfo.ColumnIndexEnd
= 17;
colInfo.Width
= 15 * 256;
ws.AddColumnInfo(colInfo);

列格式必须每次都要重新定义,一个列格式不能重复使用。

4.指定单元格样式:

XF xf = xls.NewXF();

xf.HorizontalAlignment = HorizontalAlignments.Centered;
xf.VerticalAlignment
= VerticalAlignments.Centered;
xf.Pattern
= 1;
xf.PatternColor
= Colors.Default30;
xf.UseBorder
= true;
xf.TopLineStyle
= 1;
xf.TopLineColor
= Colors.Black;
xf.BottomLineStyle
= 1;
xf.BottomLineColor
= Colors.Black;
xf.LeftLineStyle
= 1;
xf.LeftLineColor
= Colors.Black;
xf.RightLineStyle
= 1;
xf.RightLineColor
= Colors.Black;
xf.Font.Bold
= true;
xf.Font.Height
= 11 * 20;
xf.Font.ColorIndex
= 1;

5.给单元格赋值:

ws.Cells.Add(2, 3, "金额(万元)", xf);

6.合并单元格:

ws.Cells.Merge(1, 2, 2, 2);
//或者
ws.AddMergeArea(new MergeArea(1, 2, 1, 1));

7.MyXls合并单元格有个bug,就是合并后只是第一个单元格有样式,其余的样式丢失。所以写了个函数来合并:

MergeRegion(ref ws, xf, "机构", 1, 1, 2, 1);

public void MergeRegion(ref Worksheet ws, XF xf, string title, int startRow, int startCol, int endRow, int endCol)
{
      
for (int i = startCol; i <= endCol; i++)
       {
            
for (int j = startRow; j <= endRow; j++)
             {
                 ws.Cells.Add(j, i, title, xf);
             }
       }
       ws.Cells.Merge(startRow, endRow, startCol, endCol);
}

虽然效率不怎么样,但是对于出Excel报表,还OK。

8.指定单元格格式

cell.Format = StandardFormats.Decimal_1;

具体更多请参考源代码的StandardFormats类。

9.保存或者发送Excel:

xls.Send();

//或者
xls.Save();

MyXls下载地址:

标签:

代码片段(1)

[代码] [C#]代码

01 //1.创建一个Excel文档:
02  
03 XlsDocument xls = new XlsDocument();
04  
05 //2.创建一个WorkSheet:
06  
07 Worksheet ws = xls.Workbook.Worksheets.Add("WorkSheet1");
08  
09 //3.指定列格式:
10  
11 ColumnInfo colInfo = new ColumnInfo(xls, ws);
12 colInfo.ColumnIndexStart = 0;
13 colInfo.ColumnIndexEnd = 17;
14 colInfo.Width = 15 * 256;
15 ws.AddColumnInfo(colInfo);
16  
17 //列格式必须每次都要重新定义,一个列格式不能重复使用。
18  
19 //4.指定单元格样式:
20  
21 XF xf = xls.NewXF();
22 xf.HorizontalAlignment = HorizontalAlignments.Centered;
23 xf.VerticalAlignment = VerticalAlignments.Centered;
24 xf.Pattern = 1;
25 xf.PatternColor = Colors.Default30;
26 xf.UseBorder = true;
27 xf.TopLineStyle = 1;
28 xf.TopLineColor = Colors.Black;
29 xf.BottomLineStyle = 1;
30 xf.BottomLineColor = Colors.Black;
31 xf.LeftLineStyle = 1;
32 xf.LeftLineColor = Colors.Black;
33 xf.RightLineStyle = 1;
34 xf.RightLineColor = Colors.Black;
35 xf.Font.Bold = true;
36 xf.Font.Height = 11 * 20;
37 xf.Font.ColorIndex = 1;
38  
39 //5.给单元格赋值:
40  
41 ws.Cells.Add(2, 3, "金额(万元)", xf);
42  
43 //6.合并单元格:
44 ws.Cells.Merge(1, 2, 2, 2);
45 //或者
46 ws.AddMergeArea(new MergeArea(1, 2, 1, 1));
47  
48 //7.MyXls合并单元格有个bug,就是合并后只是第一个单元格有样式,其余的样式丢失。所以写了个函数来合并:
49  
50 MergeRegion(ref ws, xf, "机构", 1, 1, 2, 1);
51  
52 public void MergeRegion(ref Worksheet ws, XF xf, string title, int startRow, int startCol, int endRow, int endCol)
53 {
54       for (int i = startCol; i <= endCol; i++)
55        {
56             for (int j = startRow; j <= endRow; j++)
57              {
58                  ws.Cells.Add(j, i, title, xf);
59              }
60        }
61        ws.Cells.Merge(startRow, endRow, startCol, endCol);
62 }
63  
64 //虽然效率不怎么样,但是对于出Excel报表,还OK。
65  
66 //8.指定单元格格式:
67  
68 cell.Format = StandardFormats.Decimal_1;
69  
70 //具体更多请参考源代码的StandardFormats类。
71  
72 //9.保存或者发送Excel:
73  
74 xls.Send();
75 //或者
76 xls.Save();
 
posted on
2011-07-27 10:41 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/archive/2011/07/27/2117972.html

你可能感兴趣的文章
梯度下降法与方向导数
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
2018.08.22 NOIP模拟 shop(lower_bound+前缀和预处理)
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
查看>>
jQuery总结或者锋利的jQuery笔记二
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
【Quartz】常用方法的使用方式(三)
查看>>
MVVM模式下关闭窗口的实现
查看>>
C#区域截图——调用API截图
查看>>
c#与java中byte字节的区别及转换方法
查看>>
A WebBrowser Toy
查看>>
用MyXls生成Excel报表(C#)
查看>>
了解WP的传感器
查看>>
阅读笔记 火球——UML大战需求分析 2
查看>>