Asp.Net使用org.in2bits.MyXls.dll操作excel的应用!(转)

来源:互联网 发布:java程序员视频教程 编辑:程序博客网 时间:2024/06/05 09:38

效果:

首先下载org.in2bits.MyXls.dll(自己的在~\About ASP.Net\Asp.Net操作excel),然后添加引用;

添加命名空间:

using org.in2bits.MyXls;
using System.IO;

代码:

 protected void Button1_Click(object sender, EventArgs e)
        {
            //生成Excel开始
            XlsDocument xls = new XlsDocument();//创建空xls文档
            xls.FileName = Server.MapPath("~/Demo.xls");//保存路径,如果直接发送到客户端的话只需要名称 生成名称
            Worksheet sheet = xls.Workbook.Worksheets.AddNamed("Demo"); //创建一个工作页为Dome             
            //设置文档列属性 
            ColumnInfo cinfo = new ColumnInfo(xls, sheet);//设置xls文档的指定工作页的列属性
            cinfo.Collapsed = true;
            //设置列的范围 如 0列-10列
            cinfo.ColumnIndexStart = 0;//列开始


            cinfo.ColumnIndexEnd = 10;//列结束


            cinfo.Collapsed = true;


            cinfo.Width = 90 * 60;//列宽度


            sheet.AddColumnInfo(cinfo);


            //设置文档列属性结束


            //设置指定工作页跨行跨列


            MergeArea ma = new MergeArea(1, 1, 1, 5);//从第1行跨到第二行,从第一列跨到第5列


            sheet.AddMergeArea(ma);


            //设置指定工作页跨行跨列结束


            //创建列样式创建列时引用


            XF cellXF = xls.NewXF();


            cellXF.VerticalAlignment = VerticalAlignments.Centered;


            cellXF.HorizontalAlignment = HorizontalAlignments.Centered;


            cellXF.Font.Height = 24 * 12;


            cellXF.Font.Bold = true;


            cellXF.Pattern = 1;//设定单元格填充风格。如果设定为0,则是纯色填充


            cellXF.PatternBackgroundColor = Colors.Red;//填充的背景底色


            cellXF.PatternColor = Colors.Red;//设定填充线条的颜色


            //创建列样式结束

            //创建列

            Cells cells = sheet.Cells; //获得指定工作页列集合

            //列操作基本

            Cell cell = cells.Add(1, 1, "Myxls组件测试程序 Dome", cellXF);//添加标题列返回一个列  参数:行 列 名称 样式对象

            //设置XY居中

            cell.HorizontalAlignment = HorizontalAlignments.Centered;

            cell.VerticalAlignment = VerticalAlignments.Centered;

            //设置字体

            cell.Font.Bold = true;//设置粗体

            cell.Font.ColorIndex = 0;//设置颜色码           

            cell.Font.FontFamily = FontFamilies.Roman;//设置字体 默认为宋体               

            //创建列结束  

            //创建列表头


            Cell title = cells.Add(2, 1, "ID");


            title.HorizontalAlignment = HorizontalAlignments.Right;

            title.VerticalAlignment = VerticalAlignments.Centered;

            //创建模拟数据

            for (int i = 0; i < 10; i++)
            {

                cells.Add(i + 3, 1, i);//添加列,不设置列属性就不用返回列对象

            }

            //生成保存到服务器如果存在不会覆盖并且报异常所以先删除在保存新的


            File.Delete(Server.MapPath("~/Demo.xls"));//删除


            //保存文档


            xls.Save();//保存到服务器


            xls.Send();//发送到客户端

        }

        //导入Excel

     protected void Button2_Click(object sender, EventArgs e)
        {
            //加载要导入的Excel

            XlsDocument xls = new XlsDocument(Server.MapPath("~/Demo.xls"));//加载外部Excel

            //获得Excel中的指定一个工作页

            Worksheet sheet = xls.Workbook.Worksheets["Demo"];

            //读取数据 循环每sheet工作页的每一行,不读取前两行

            for (int i = 3; i < sheet.Rows.Count; i++)
            {
                //sheet.Rows[ushort.Parse(i.ToString())].GetCell(1).Value 

                //解释:获得指定工作页行集合的指定行的指定列的值

                Response.Write(sheet.Rows[ushort.Parse(i.ToString())].GetCell(1).Value);

                Response.Write("<br/>");
            }
        }


注:此文非原创,转自http://www.csharpwin.com/dotnetspace/10575r6876.shtml