zoukankan      html  css  js  c++  java
  • DataTable导出Excel

                        string fileName = "出勤明细" + DateTime.Now.ToString("yyyyMMdd");
                        //导出成Excel
                        var Result = officeHp.DtToExcel(attendDt, "XXX", new string[] { "序号", "班级名称", "学生姓名", "学生学号", "手机号", "签到时间" }, "考勤明细", fileName);
    /// <summary>  
            /// DataTable 导出到 Excel  
            /// </summary>  
            /// <param name="dt">数据表</param>  
            /// <param name="captions">要导出的列标题</param>  
            /// <param name="fieldNames">要导出的列名</param>  
            /// <param name="sheetName">工作簿名称</param>    
            public string DtToExcel(DataTable dt, string captions, string[] fieldNames, string sheetName, string fileName)
            {
                //第一步判断给出标题和查出来的数据是否相同
                if (dt.Columns.Count != fieldNames.Length) { return "ERROR"; }
    
                Workbook workbook = new Workbook(); //工作簿 
    
                Worksheet sheet = workbook.Worksheets[0]; //工作表 
                sheet.Name = sheetName;    //设置工作表的名称
                Cells cells = sheet.Cells;//单元格 
                //为标题设置样式     
                Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增样式 
                styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
                styleTitle.Font.Name = "宋体";//文字字体 
                styleTitle.Font.Size = 18;//文字大小 
                styleTitle.Font.IsBold = true;//粗体 
    
                //样式2 
                Style style2 = workbook.Styles[workbook.Styles.Add()];//新增样式 
                style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
                style2.Font.Name = "宋体";//文字字体 
                style2.Font.Size = 14;//文字大小 
                style2.Font.IsBold = true;//粗体 
                style2.IsTextWrapped = true;//单元格内容自动换行 
                style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
                style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
                style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
                style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
    
                //样式3 
                Style style3 = workbook.Styles[workbook.Styles.Add()];//新增样式 
                style3.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
                style3.Font.Name = "宋体";//文字字体 
                style3.Font.Size = 12;//文字大小 
                style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
                style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
                style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
                style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
    
                int Colnum = dt.Columns.Count;//表格列数 
                int Rownum = dt.Rows.Count;//表格行数 
    
                //生成行1 标题行    
                cells.Merge(0, 0, 1, Colnum);//合并单元格 
                cells[0, 0].PutValue(captions);//填写内容 
                cells[0, 0].SetStyle(styleTitle);
                cells.SetRowHeight(0, 38);
    
                //生成行2 列名行 
                for (int i = 0; i < Colnum; i++)
                {
                    //cells[1, i].PutValue(dt.Columns[i].ColumnName);
                    cells[1, i].PutValue(fieldNames[i]);
                    cells[1, i].SetStyle(style2);
                    cells.SetRowHeight(1, 25);
                }
    
                //生成数据行 
                for (int i = 0; i < Rownum; i++)
                {
                    for (int k = 0; k < Colnum; k++)
                    {
                        cells[2 + i, k].PutValue(dt.Rows[i][k].ToString());
                        cells[2 + i, k].SetStyle(style3);
                    }
                    cells.SetRowHeight(2 + i, 24);
                }
    
                sheet.AutoFitColumns();     //设置单元格自适应
                workbook.Save(AppDomain.CurrentDomain.BaseDirectory + @"ExportFileExcel" + fileName + ".xlsx", SaveFormat.Auto);
                return "SUCCESS";
            }
  • 相关阅读:
    Python使用struct处理二进制
    ProtoBuf与Python结合使用初步
    智能指针shared_ptr的用法
    C++模板
    mac 安装protobuf,并编译为java,c++,python
    java的HashCode方法
    JVM的内存结构
    HashSet与TreeSet的比较
    面向对象的特征有哪些方面?
    Collection与Collections的区别是什么?
  • 原文地址:https://www.cnblogs.com/siaslfslovewp/p/5972719.html
Copyright © 2011-2022 走看看