统计

  • 随笔 - 50
  • 文章 - 42
  • 评论 - 147
  • 引用 - 0

留言簿(6)

随笔分类

文章分类

Link

搜索

  •  

积分与排名

  • 积分 - 162640
  • 排名 - 161

最新评论

阅读排行榜

评论排行榜

my-xls常用方法解析

MyXls是什么?

    MyXls是用C#开源项目,可以应用于asp.net 或者 .net应用程序上。它根据微软公开的Excle文档格式文件(BIFF),以二进制格式直接生成excel文档,支持Excel versions 97 - 2007. 。这意味着可以不用在服务器上安装office就能够以excle格式输出数据库中存储的数据了。这对于许多项目来说都是很有用的。

    目前MyXls已经实现了单元格(cell)的格式设置,包括文本颜色、文本大小、字体、单位格边框、底色、列宽、行高,合并单元格,多个sheet页等功能。
    目前MyXls还不支持在excel文档中生成对象(如、文本框、按钮等)。MyXls主页称即将实现对excel文件的读取功能,个人认为读取的功能的用处还不是很多。
    MyXls主页:http://myxls.in2bits.org/wiki/MainPage.ashx

    下载页面:http://myxls.in2bits.org/wiki/Downloads.ashx

    尽管网上还有其它的类似开源项目,但我花了几天的时间认真看过了MyXls的源码(也修正了其中一个小小的bug),觉得其架构搭建的挺好,所以就以它为基础吧。希望能进一步完善它的功能!
(ps:做为C#及.net的初学者,就算在此设定一个目标吧。)


下载的源码中包含了几个简单的示例,不过实在是太简单了。让我不得不仔细分析代码,才知道怎么使用。
示例来了:下载MyXls示例文件

 string sheetName = "chc 实例";
        Worksheet sheet = xls.Workbook.Worksheets.AddNamed(sheetName);//填加名为"chc 实例"的sheet页
        Cells cells = sheet.Cells;//Cells实例是sheet页中单元格(cell)集合
        //单元格1-base
        Cell cell = cells.Add(1, 2, "抗");//设定第一行,第二例单元格的值
        cell.HorizontalAlignment = HorizontalAlignments.Centered;//设定文字居中
        cell.Font.FontName = "方正舒体";//设定字体
        cell.Font.Height = 20 * 20;//设定字大小(字体大小是以 1/20 point 为单位的)
        cell.UseBorder = true;//使用边框
        cell.BottomLineStyle = 2;//设定边框底线为粗线
        cell.BottomLineColor = Colors.DarkRed;//设定颜色为暗红

        //cell的格式还可以定义在一个xf对象中
        XF cellXF = xls.NewXF();//为xls生成一个XF实例(XF是cell格式对象)
        cellXF.HorizontalAlignment = HorizontalAlignments.Centered;//设定文字居中
        cellXF.Font.FontName = "方正舒体";//设定字体
        cellXF.Font.Height = 20 * 20;//设定字大小(字体大小是以 1/20 point 为单位的)
        cellXF.UseBorder = true;//使用边框
        cellXF.BottomLineStyle = 2;//设定边框底线为粗线
        cellXF.BottomLineColor = Colors.DarkRed;//设定颜色为暗红
       
        cell = cells.AddValueCellXF(2, 2,"震", cellXF);//以设定好的格式填加cell

        cellXF.Font.FontName = "仿宋_GB2312";
        cell = cells.AddValueCellXF(3, 2, "救", cellXF);//格式可以多次使用

        ColumnInfo colInfo = new ColumnInfo(xls, sheet);//生成列格式对象
        //设定colInfo格式的起作用的列为第2列到第5列(列格式为0-base)
        colInfo.ColumnIndexStart = 1;//起始列为第二列
        colInfo.ColumnIndexEnd = 5;//终止列为第六列
        colInfo.Width = 15 * 256;//列的宽度计量单位为 1/256 字符宽
        sheet.AddColumnInfo(colInfo);//把格式附加到sheet页上(注:AddColumnInfo方法有点小问题,不给把colInfo对象多次附给sheet页)
        colInfo.ColumnIndexEnd = 6;//可以更改列对象的值
        ColumnInfo colInfo2 = new ColumnInfo(xls, sheet);//通过新生成一个列格式对象,才到能设定其它列宽度
        colInfo2.ColumnIndexStart = 7;
        colInfo2.ColumnIndexEnd = 8;
        colInfo2.Width = 1 * 256;
        sheet.AddColumnInfo(colInfo2);

        MergeArea meaA = new MergeArea(1,2,3,4);//一个合并单元格实例(合并第一行、第三例 到 第二行、第四例)
        sheet.AddMergeArea(meaA);//填加合并单元格
        cellXF.VerticalAlignment=  VerticalAlignments.Centered;
        cellXF.Font.Height = 48 * 20;
        cellXF.Font.Bold = true;
        cellXF.Pattern = 3;//设定单元格填充风格。如果设定为0,则是纯色填充
        cellXF.PatternBackgroundColor = Colors.DarkRed;//填充的底色
        cellXF.PatternColor = Colors.DarkGreen;//设定填充线条的颜色
        cell = cells.Add(1, 3, "灾",cellXF);

posted on 2009-03-04 18:05 pear_li 阅读(2257) 评论(2)  编辑 收藏 引用 所属分类: C#/.net

评论

# re: my-xls常用方法解析[未登录] 2009-06-19 13:15 kk

哪有行高部分的内容啊???????
  回复  更多评论    

# re: my-xls常用方法解析 2012-08-29 11:32 郭韬

cells.Add插入字符大于255时,会自动截取,怎么才能完全保留?
  回复  更多评论    

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理