注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

软件大铺的博客

IT技术共享

 
 
 

日志

 
 

优秀开源项目:MyXls  

2011-08-11 13:36:07|  分类: 开源 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如果从快速生成Excel报表,不调用Excel组件角度讲,MyXls可能是一种最好的选择之一,当然使用Open Xml方式也是不错的选择。MyXls是一个用C#语言开发的生成Excel报表的优秀开源项目,在快速开发中我一直比较喜欢它。MyXls官方的解释:
Writes and now Reads Excel files quickly and easily, including formatting. Generate Excel files for ASP.NET sites or .NET applications. Doesn't require Excel on the server or any licensing $. Compatible with Excel versions >= 97
 
MyXls可以用在.NET平台的诸如Windows Form,Asp.NET项目中,当然Sharepoint项目中也可以使用,支持的Excel版本包裹2003,2007等等(Excel versions >= 97)。
大凡开源项目的作者,多半都是重口味者,MyXls开源组件基于的技术是Excel文件的二进制格式(BIFF),  OpenOffice.org发布过的俩个文档Excel File Format (BIFF8)SpecificationMicrosoft CompoundDocument (OLE2) Format SpecificationExcel的二进制格式做了一个比较详细的说明,MyXls的作者正是凭借这些信息把它开发而成的。
MyXls的下载地址:MyXls
 
下面通过2个例子来使用这个开源组件
生成单个Worksheet:
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        XlsDocument doc = new XlsDocument(); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        doc.FileName = "MyXlsWebAppDemo.xls"
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        Worksheet sheet = doc.Workbook.Worksheets.Add("Hello World Sheet"); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        Cell cell = sheet.Cells.Add(1, 1, "Hello,MyXls!"); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        for (int i = 2; i <= 10; i++) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                cell = sheet.Cells.Add(i, 1, "51CTO五岁了!"); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                cell.Font.Weight = FontWeight.Bold; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                cell.Font.ColorIndex =2;//白 红 绿 蓝 黄 粉红等等颜色,可以通过源代码了解颜色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                         
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        doc.Send();
 
生成的报表如下:
 
生成多个WorkSheet
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 XlsDocument xls = new XlsDocument();//新建一个xls文档 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        xls.FileName = "MyXlsDemo.xls";//设定Excel文件名 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        xls.SummaryInformation.Author = "Terry Li"//填加Excel文件作者信息 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        xls.SummaryInformation.Subject = "MyXls Demo";//填加文件主题信息 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        xls.DocumentSummaryInformation.Company = "in2bits.org";//填加文件公司信息 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客string sheetName = "第一个Sheet Demo";#region    
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        
string sheetName = "第一个Sheet Demo"
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        Worksheet sheet = xls.Workbook.Worksheets.Add(sheetName);//填加名为"第一个Sheet Demo"的sheet页 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        Cells cells = sheet.Cells;//Cells实例是sheet页中单元格(cell)集合 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //单元格1-base 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        Cell cell = cells.Add(2, 3, "三");//设定第2行,第3例单元格的值 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.HorizontalAlignment = HorizontalAlignments.Centered;//设定文字居中 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.Font.FontName = "行楷";//设定字体 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.Font.Height = 30 * 20;//设定字大小(字体大小是以 1/20 point 为单位的) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.UseBorder = true;//使用边框 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.BottomLineStyle = 2;//设定边框底线为粗线 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.BottomLineColor = Colors.Red;//设定颜色为红色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.RightLineStyle = 2; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.RightLineColor = Colors.Red; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                         
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                         
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //cell的格式还可以定义在一个xf对象中 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        XF cellXF = xls.NewXF();//为xls生成一个XF实例(XF是cell格式对象) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.HorizontalAlignment = HorizontalAlignments.Centered;//设定文字居中 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.Font.FontName = "隶书";//设定字体 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.Font.Height = 30 * 20;//设定字大小(字体大小是以 1/20 point 为单位的) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.UseBorder = true;//使用边框 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.BottomLineStyle = 2;//设定边框底线为粗线 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.BottomLineColor = Colors.Green;//设定颜色为绿色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.LeftLineStyle = 2; //设定边框左线为粗线 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.LeftLineColor = Colors.Green; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell = cells.Add(3, 3, "国", cellXF);//以设定好的格式填加cell 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.Font.FontName = "仿宋_GB2312"
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.BottomLineStyle = 2; //设定边框底线为粗线 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.BottomLineColor = Colors.Blue;//设定颜色为蓝色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.RightLineStyle = 2;//设定边框右线为粗线 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.RightLineColor = Colors.Blue;//设定颜色为蓝色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.LeftLineStyle = 0; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell = cells.Add(4, 3, "志", cellXF);//格式可以多次使用 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //ColumnInfo colInfo = new ColumnInfo(xls, sheet);//生成列格式对象 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        ////设定colInfo格式的起作用的列为第2列到第5列(列格式为0-base
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo.ColumnIndexStart = 1;//起始列为第二列 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo.ColumnIndexEnd = 5;//终止列为第六列 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo.Width = 15 * 256;//列的宽度计量单位为 1/256 字符宽 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //sheet.AddColumnInfo(colInfo);//把格式附加到sheet页上(注:AddColumnInfo方法有点小问题,不给把colInfo对象多次附给sheet页) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo.ColumnIndexEnd = 6;//可以更改列对象的值 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //ColumnInfo colInfo2 = new ColumnInfo(xls, sheet);//通过新生成一个列格式对象,才到能设定其它列宽度 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo2.ColumnIndexStart = 7; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo2.ColumnIndexEnd = 8; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //colInfo2.Width = 20 * 256; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //sheet.AddColumnInfo(colInfo2); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        MergeArea meaA = new MergeArea(2, 3, 5, 7);//一个合并单元格实例(合并第2行、第5例 到 第3行、第7例) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        sheet.AddMergeArea(meaA);//填加合并单元格 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.VerticalAlignment = VerticalAlignments.Centered; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.Font.FontName = "隶书"
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //cellXF.Font.Height = 48 * 20; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        //cellXF.Font.Bold = true; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.Pattern = 1;//设定单元格填充风格。如果设定为0,则是纯色填充(无色),1代表没有间隙的实色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.PatternBackgroundColor = Colors.Red;//填充的底色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cellXF.PatternColor = Colors.Green;//设定填充线条的颜色 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell = cells.Add(2, 5, "晋/陈寿", cellXF); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        #endregion 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        sheet.Cells.Merge(7, 9, 1, 4); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell = cells.Add(7, 1, "MyXls 合并单元格 Demo"); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.HorizontalAlignment = HorizontalAlignments.Centered; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        cell.VerticalAlignment = VerticalAlignments.Centered; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        for (int sheetNumber = 1; sheetNumber <= 4; sheetNumber++) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                sheetName = "Sheet " + sheetNumber; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                int rowMin = sheetNumber; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                int rowCount = sheetNumber + 10; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                int colMin = sheetNumber; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                int colCount = sheetNumber + 10; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                sheet = xls.Workbook.Worksheets.Add(sheetName); 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                cells = sheet.Cells; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                for (int r = 0; r < rowCount; r++) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                        if (r == 0) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                        { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                for (int c = 0; c < colCount; c++) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                        cells.Add(rowMin + r, colMin + c, "Column" + (c + 1)).Font.Bold = true
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                        } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                        else 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                        { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                for (int c = 0; c < colCount; c++) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                        int val = r + c; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                        cell = cells.Add(rowMin + r, colMin + c, val+ ":51CTO五岁了!");
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                        if (val % 2 != 0) 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                        { 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                                cell.HorizontalAlignment = HorizontalAlignments.Centered; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                                cell.Font.FontName = "Times New Roman"
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                                cell.Font.Underline = UnderlineTypes.Double; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                                cell.Font.ColorIndex = 2; 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                                cell.Rotation = 45; //字符倾斜45度 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                        } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                                } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                        } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                                } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        } 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客 
优秀开源项目:MyXls - 软件大铺 - 软件大铺的博客                        xls.Send();//XlsDocument.SendMethods.Inline
 
 
 

本文出自 “李涛的技术专栏” 博客,请务必保留此出处http://terryli.blog.51cto.com/704315/392125

  评论这张
 
阅读(2204)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018