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文件输出到客户端 




  • 相关阅读:
    打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
    基于 Windows Server 2008 的计算机对 Microsoft Dynamics CRM 4.0 的支持
    Microsoft Dynamics CRM 4.0 如何添加自定义按钮
    Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
    C# 中的 enum(枚举) 类型使用例子
    vue事件的绑定
    表单验证2
    node中模块
    node模块的引入
    node中的读文件
  • 原文地址:https://www.cnblogs.com/pingping/p/2288669.html
Copyright © 2011-2022 走看看