• Excel与数据库的交互(二)——导出Excel


      上一篇中我写到过有关将Excel导入到数据库的思想和代码,既然需要将Excel表导入到数据库,当然也少不了将数据库的数据导出为Excel表的形式。

          那我就不写思想了,直接上代码吧:

     1 //从数据库中取出数据
    2 BLL.Score bll = new BLL.Score();
    3 DataSet ds = bll.GetAcademeAndClass();
    4 DataSet ds_excle = new DataSet();
    5 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    6 {
    7 //生成将要存放结果的Excel文件的名称
    8 string NewFileName = ds.Tables[0].Rows[i]["Academe"].ToString() + ".xls";
    9 //转换为物理路径
    10 string file_fullname = Server.MapPath("~/Web/DataImport/DataBackup/" + NewFileName);//含路径全名
    11 //Server.MapPath(file_fullname);
    12 //根据模板正式生成该Excel文件
    13 File.Copy(Server.MapPath("Module01.xls"), file_fullname, true);
    14 //建立指向该Excel文件的数据库连接
    15 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file_fullname + ";Extended Properties='Excel 8.0;'";
    16 OleDbConnection Conn = new OleDbConnection(strConn);
    17 //打开连接,为操作该文件做准备
    18 Conn.Open();
    19 OleDbCommand Cmd = new OleDbCommand("", Conn);
    20 //将信息写入到Excel表
    21 ds_excle=bll.GetStudentScore(ds.Tables[0].Rows[i]["Academe"].ToString(), ds.Tables[0].Rows[i]["ClassName"].ToString());
    22 for (int j = 0; j < ds_excle.Tables[0].Rows.Count; j++)
    23 {
    24
    25 string XSqlString = "insert into "+"[Sheet"+(j+1)+"$]";
    26 XSqlString += "([学号],[姓名],[课程名称],[成绩],[学院],[班级]) values(";
    27 XSqlString += "'" + ds_excle.Tables[0].Rows[j]["UserID"] + "',";
    28 XSqlString += "'" + ds_excle.Tables[0].Rows[j]["UserName"] + "',";
    29 XSqlString += "'" + ds_excle.Tables[0].Rows[j]["Name"] + "',";
    30 XSqlString += "'" + ds_excle.Tables[0].Rows[j]["Score"] + "',";
    31 XSqlString += "'" + ds.Tables[0].Rows[i]["Academe"] + "',";
    32 XSqlString += "'" + ds.Tables[0].Rows[i]["ClassName"] + "')";
    33 Cmd.CommandText = XSqlString;
    34 Cmd.ExecuteNonQuery();
    35
    36 }
    37 //操作结束,关闭连接
    38 Conn.Close();


        注意这是基于模板式的将数据导出为Excel。也就是说事先在你的代码文件夹下面已存在该模板Excel文件。若果你在使用中需要的是不同的模板的话,那你就需要动态的去创建模板了。

  • 相关阅读:
    go 基本类型
    slice底层实现
    数组Array
    GO内置类型和函数
    python 操作es
    go 相关命令
    Init函数和main函数
    切片
    RecursionError: maximum recursion depth exceeded
    多项式工业基础与全家桶
  • 原文地址:https://www.cnblogs.com/xiaopanlyu/p/2415488.html
Copyright © 2020-2023  润新知