zoukankan      html  css  js  c++  java
  • asp.net 导出 Excel

    本文使用 org.in2bits.MyXls.dll 进行导出 Excel 的过程讲解

    功能实现: 将GridView信息导出Excel表,如果列表信息是根据 时间 筛选出来, 那么Excel表的标题包含时间 , 例如 :2011-07-05~2011-11-09  ***-客户信息列表

    第一步: 创建 Excel

     /*****************************创建Excel star*****************************/

    org.in2bits.MyXls.XlsDocument doc = new org.in2bits.MyXls.XlsDocument();
    doc.FileName = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + ".xls";//excel文件名称
    org.in2bits.MyXls.Worksheet sheet = doc.Workbook.Worksheets.Add("sheet1");//Worksheets.AddNamed("sheet1");//Excel工作表名称

    org.in2bits.MyXls.Cells cells = sheet.Cells;

    /*****************************创建Excel end *****************************/


     第二步:自定义样式

            /*****************************sheett标题样式  star *****************************/

    MergeArea ma = new MergeArea(1, 1, 1, 15); //合并第1行、第1列 到 第1行、第14列
    sheet.AddMergeArea(ma); //填加合并单元格

    XF titleXF = doc.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
    titleXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中
    titleXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
    titleXF.UseBorder = true; // 使用边框
    titleXF.TopLineStyle = 1; // 上边框样式
    titleXF.TopLineColor = Colors.Black; // 上边框颜色
    titleXF.LeftLineStyle = 1; // 左边框样式
    titleXF.LeftLineColor = Colors.Black; // 左边框颜色
    titleXF.RightLineStyle = 1; // 右边框样式
    titleXF.RightLineColor = Colors.Black; // 右边框颜色
    titleXF.Font.FontName = "宋体"; // 字体
    titleXF.Font.Bold = true; // 是否加楚
    titleXF.Font.Height = 12 * 20; // 字大小(字体大小是以 1/20 point 为单位的)

    /*****************************sheett标题样式 end *****************************/

    /*****************************列标题样式 star *****************************/

    XF columnTitleXF = doc.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
    columnTitleXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中
    columnTitleXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
    columnTitleXF.UseBorder = true; // 使用边框
    columnTitleXF.TopLineStyle = 1; // 上边框样式
    columnTitleXF.TopLineColor = Colors.Black; // 上边框颜色
    columnTitleXF.BottomLineStyle = 1; // 下边框样式
    columnTitleXF.BottomLineColor = Colors.Black; // 下边框颜色
    columnTitleXF.LeftLineStyle = 1; // 左边框样式
    columnTitleXF.LeftLineColor = Colors.Black; // 左边框颜色
    columnTitleXF.Pattern = 1; // 单元格填充风格。如果设定为0,则是纯色填充(无色),1代表没有间隙的实色
    columnTitleXF.PatternBackgroundColor = Colors.Red; // 填充的底色
    columnTitleXF.PatternColor = Colors.Default2F; // 填充背景色


    /*****************************列标题样式 end *****************************/

    /*****************************列内容样式 star *****************************/

    XF dataXF = doc.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
    dataXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中
    dataXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
    dataXF.UseBorder = true; // 使用边框
    dataXF.LeftLineStyle = 1; // 左边框样式
    dataXF.LeftLineColor = Colors.Black; // 左边框颜色
    dataXF.BottomLineStyle = 1; // 下边框样式
    dataXF.BottomLineColor = Colors.Black; // 下边框颜色
    dataXF.Font.FontName = "宋体";
    dataXF.Font.Height = 9 * 20; // 设定字大小(字体大小是以 1/20 point 为单位的)
    dataXF.UseProtection = false; // 默认的就是受保护的,导出后需要启用编辑才可修改
    dataXF.TextWrapRight = true; // 自动换行

    /*****************************列内容样式 end *****************************/

    /*****************************列样式 end *****************************/
    ColumnInfo col0 = new ColumnInfo(doc, sheet); // 列对象
    col0.ColumnIndexStart = 0; // 起始列为第1列,索引从0开始
    col0.ColumnIndexEnd = 0; // 终止列为第1列,索引从0开始
    col0.Width = 6 * 256; // 列的宽度计量单位为 1/256 字符宽
    sheet.AddColumnInfo(col0); // 把格式附加到sheet页上

    ColumnInfo col2 = new ColumnInfo(doc, sheet); // 列对象
    col2.ColumnIndexStart = 1; // 起始列为第1列,索引从0开始
    col2.ColumnIndexEnd = 9; // 终止列为第1列,索引从0开始
    col2.Width = 14 * 256; // 列的宽度计量单位为 1/256 字符宽
    sheet.AddColumnInfo(col2); // 把格式附加到sheet页上

    ColumnInfo col1 = new ColumnInfo(doc, sheet);
    col1.ColumnIndexStart = 10; // 起始列为第1列,索引从0开始
    col1.ColumnIndexEnd =12; // 终止列为第1列,索引从0开始
    col1.Width =8 * 256; // 列的宽度计量单位为 1/256 字符宽
    sheet.AddColumnInfo(col1); // 把格式附加到sheet页上

    ColumnInfo col4 = new ColumnInfo(doc, sheet);
    col4.ColumnIndexStart = 13; // 起始列为第1列,索引从0开始
    col4.ColumnIndexEnd = 13; // 终止列为第1列,索引从0开始
    col4.Width = 18 * 256; // 列的宽度计量单位为 1/256 字符宽
    sheet.AddColumnInfo(col4); // 把格式附加到sheet页上

    ColumnInfo col3 = new ColumnInfo(doc, sheet);
    col3.ColumnIndexStart = 9; // 起始列为第1列,索引从0开始
    col3.ColumnIndexEnd = 9; // 终止列为第1列,索引从0开始
    col3.Width = 22 * 256; // 列的宽度计量单位为 1/256 字符宽
    sheet.AddColumnInfo(col3); // 把格式附加到sheet页上

    /*****************************列样式 end *****************************/


    第三步:添加内容

            /*****************************sheet标题   star *****************************/

    Cell topCell; string TitleName = "客户信息列表";
    if (strTime.Trim().Length > 0 && endTime.Trim().Length > 0)
    {
    if (Convert.ToDateTime(strTime).ToString("yyyy-MM-dd") == Convert.ToDateTime(endTime).ToString("yyyy-MM-dd"))
    {
    TitleName = endTime + "客户信息列表";
    }
    else
    {
    TitleName = strTime + "~" + endTime + "客户信息列表";
    }
    }
    topCell = cells.Add(1, 1, TitleName, titleXF);

    /*****************************sheet标题 end *****************************/

    /*****************************列标题 star *****************************/
    int colnum = this.gv_comlist.Columns.Count; //获取gridview列数
    Cell testCell;
    int j = 0;
    for (int i = 0; i < colnum - 2; i++)
    {
    /* 如果管理员是salescash, 将导出信息阉掉前三列
    *
    */
    if ("salescash".Equals(Session["UserID"]))
    {
    if (i == 1 || i == 2 || i == 3)
    {
    continue;
    }
    }
    testCell = cells.Add(2, (j + 1), this.gv_comlist.Columns[i].HeaderText, columnTitleXF);//导出gridView列名
    j++;
    }

    /*****************************列标题 end *****************************/


    /*****************************列内容 star *****************************/
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    cells.Add((i + 3), 1, Convert.ToString(i + 1), dataXF);
    if ("salescash".Equals(Session["UserID"]))
    {
    //cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Content"]));
    cells.Add((i + 3), 2, Convert.ToString(dt.Rows[i]["Name"]), dataXF);
    cells.Add((i + 3), 3, Convert.ToString(dt.Rows[i]["Contry"]), dataXF);
    cells.Add((i + 3), 4, Convert.ToString(dt.Rows[i]["City"]), dataXF);
    cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Phone"]), dataXF);
    cells.Add((i + 3), 6, Convert.ToString(dt.Rows[i]["Tel"]), dataXF);
    cells.Add((i + 3), 7, Convert.ToString(dt.Rows[i]["Emial"]), dataXF);
    cells.Add((i + 3), 8, Convert.ToString(dt.Rows[i]["status"]), dataXF);
    cells.Add((i + 3), 9, Convert.ToString(dt.Rows[i]["newActivate"]), dataXF);
    cells.Add((i + 3), 10, Convert.ToString(dt.Rows[i]["newDownBool"]), dataXF);
    cells.Add((i + 3), 11, Convert.ToString(dt.Rows[i]["createdate"]), dataXF);
    cells.Add((i + 3), 12, Convert.ToString(dt.Rows[i]["Market"]), dataXF);
    }
    else
    {
    cells.Add((i + 3), 2, Convert.ToString(dt.Rows[i]["Campaign"]), dataXF);
    cells.Add((i + 3), 3, Convert.ToString(dt.Rows[i]["Source"]), dataXF);
    cells.Add((i + 3), 4, Convert.ToString(dt.Rows[i]["Medium"]), dataXF);
    //cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Content"]));
    cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Name"]), dataXF);
    cells.Add((i + 3), 6, Convert.ToString(dt.Rows[i]["Contry"]), dataXF);
    cells.Add((i + 3), 7, Convert.ToString(dt.Rows[i]["City"]), dataXF);
    cells.Add((i + 3), 8, Convert.ToString(dt.Rows[i]["Phone"]), dataXF);
    cells.Add((i + 3), 9, Convert.ToString(dt.Rows[i]["Tel"]), dataXF);
    cells.Add((i + 3), 10, Convert.ToString(dt.Rows[i]["Emial"]), dataXF);
    cells.Add((i + 3), 11, Convert.ToString(dt.Rows[i]["status"]), dataXF);
    cells.Add((i + 3), 12, Convert.ToString(dt.Rows[i]["newActivate"]), dataXF);
    cells.Add((i + 3), 13, Convert.ToString(dt.Rows[i]["newDownBool"]), dataXF);
    cells.Add((i + 3), 14, Convert.ToString(dt.Rows[i]["createdate"]), dataXF);
    cells.Add((i + 3), 15, Convert.ToString(dt.Rows[i]["Market"]), dataXF);
    }
    }
    /*****************************列内容 end *****************************/

    最后  : 

     doc.Send();//把写好的excel文件输出到客户端 




  • 相关阅读:
    08_CSS3简单入门——样式表、选择器
    07_html5简单入门——主体结构元素、非主体结构元素
    06_html5简单入门——框架、可编辑列表、隐藏列表、拼写检测、全局属性
    05_html5简单入门——样式表、块
    Python-容易想不起来的东东
    DNS服务和Bind,bind编译安装,CDN介绍
    逻辑卷管理器LVM
    RAID磁盘阵列
    磁盘管理和文件系统
    软件包管理
  • 原文地址:https://www.cnblogs.com/pingping/p/2288669.html
Copyright © 2011-2022 走看看