这些天使用MyXls导出Excel报表(因为Apose.Cells要收费)。感觉MyXls虽然功能远没有Cells强大,但是胜在开源、免费而且性能稳定可靠。用作出一般情况下的报表。足矣!
记下几个初级使用方法,希望能够给初入门的人一点帮助:
1.创建一个Excel文档:
Code XlsDocument xls = new XlsDocument();
2.创建一个WorkSheet:
Code Worksheet ws = xls.Workbook.Worksheets.Add("WorkSheet1");
3.指定列格式:
Code ColumnInfo colInfo = new ColumnInfo(xls, ws);colInfo.ColumnIndexStart = 0;colInfo.ColumnIndexEnd = 17;colInfo.Width = 15 * 256;ws.AddColumnInfo(colInfo);
列格式必须每次都要重新定义,一个列格式不能重复使用。
4.指定单元格样式:
Code 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.给单元格赋值:
Code ws.Cells.Add(2, 3, "金额(万元)", xf);
6.合并单元格:
Code ws.Cells.Merge(1, 2, 2, 2);//或者ws.AddMergeArea(new MergeArea(1, 2, 1, 1));
7.MyXls合并单元格有个bug,就是合并后只是第一个单元格有样式,其余的样式丢失。所以写了个函数来合并:
Code 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.指定单元格格式:
Code cell.Format = StandardFormats.Decimal_1;
具体更多请参考源代码的StandardFormats类。
9.保存或者发送Excel:
Code xls.Send();//或者xls.Save();
转载于:https://www.cnblogs.com/KenBlove/archive/2009/09/07/1562044.html
相关资源:MyXls.SL2.dll