zoukankan      html  css  js  c++  java
  • asp.net导出数据到EXCEL简单有效

    一:用StringWriter类循环把DATATABLE里面的数据读出来。这方法好,简单也不复杂,不用添加引用。

    首先得从数据库取到数据:

     DataTable ds;

    ds = DbHelperSQL.Query(strsql.ToString(), parameters);

     StringWriter swr = new StringWriter();
                    swr.WriteLine("操作时间\t操作员ID\t私网IP\t公网IP\t游戏名称\t游戏帐号\t订单号\t订单状态\t发布单IP");
                   
                    //设置导出的文件名
                    DateTime dt = DateTime.Now;
                    string strFileName = this.tbxFristTime.Text.ToString() + "-" + this.txtGameName.Text.Trim() +"-"+ this.RadioButtonList1.SelectedItem.Text.ToString() ;
                    strFileName = strFileName + ".xls";
                    foreach (DataRow dr in ds.Rows)
                    {
                        swr.WriteLine(dr[0].ToString() + "\t" + dr[1].ToString() + "\t" + dr[2].ToString() + "\t" + dr[3].ToString() + "\t" + dr[4].ToString()+ "\t" + dr[5].ToString() + "\t" + dr[6].ToString()+ "\t" + dr[7].ToString()+ "\t"+dr[8].ToString()+"\t");
                    }
                    swr.Close();
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8).ToString());
                    Response.ContentType = "application/ms-excel";
                    Response.ContentEncoding = Encoding.Default;
                    Response.Write(swr);
                    Response.End();

    f二:利用EXCEL组件,首先得添加引用:

    //using Microsoft.Office.Interop.Excel;
    using Excel = Microsoft.Office.Interop.Excel;
    using System.IO;

    下面是代码:

            if (this.tbxFristTime.Text != "")
            {
                string strOrderState = Convert.ToString(this.RadioButtonList1.SelectedValue);
                if (strOrderState != "")
                {

                    StringBuilder strStartTime = new StringBuilder();
                    strStartTime.Append(this.tbxFristTime.Text.ToString());
                    strStartTime.Append(" 00:00:00");
                    StringBuilder strEneTime = new StringBuilder();
                    strEneTime.Append(this.tbxFristTime.Text.ToString());
                    strEneTime.Append(" 23:59:59");
                    DataTable ds;

                    SqlParameter[] parameters = {
                        new SqlParameter("@startTime",SqlDbType.NVarChar,30),
                        new SqlParameter("@endTime",SqlDbType.NVarChar,30),
                        new SqlParameter("@orderState",SqlDbType.NVarChar,4)};
                    parameters[0].Value = strStartTime.ToString();
                    parameters[1].Value = strEneTime.ToString();
                    parameters[2].Value = strOrderState;
                    StringBuilder strsql = new StringBuilder();
                    strsql.Append("SELECT FTime,FOperatorID,FIPAddr,FPubIP,FGameName,FAccNo,FOrderNo,FOrderState FROM ");
                    strsql.Append(" DBRC2Management..TOrderOperationLog WHERE ");
                    strsql.Append(" FIndex IN(SELECT MAX(FIndex) FROM DBRC2Management..TOrderOperationLog GROUP BY FPubIP) AND FPubIP<>'' AND ");
                    strsql.Append(" FOrderState=@orderState AND FTime BETWEEN @startTime AND @endTime ORDER BY FTime desc ");
                    ds = DbHelperSQL.Query(strsql.ToString(), parameters);

                    Microsoft.Office.Interop.Excel.Application myexcel = new Microsoft.Office.Interop.Excel.Application();
                    myexcel.Application.Workbooks.Add("E:\\aa\\Order.csv");
                    Microsoft.Office.Interop.Excel.Worksheet myWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)myexcel.Worksheets[1];
                    Microsoft.Office.Interop.Excel.Range myrange = myexcel.get_Range(myexcel.Cells[1, 1], myexcel.Cells[3, 3]);
                    myexcel.Visible = true;
                    myexcel.Caption = "操作时间";
                    myWorkSheet.Cells[1, 1] = "私网IP";
                    myWorkSheet.Cells[2, 1] = "公网IP";
                    Excel.ApplicationClass Mylxls = new Excel.ApplicationClass();
                    Mylxls.Application.Workbooks.Add(true);
                    myexcel.Caption = "异常订单表";
                    myWorkSheet.Cells[1, 1] = "5173异常订单数据";
                    myWorkSheet.Cells[2, 1] = "执行时间";
                    myWorkSheet.Cells[2, 2] = "操作员ID";
                    myWorkSheet.Cells[2, 3] = "私网IP";
                    myWorkSheet.Cells[2, 4] = "公网IP";
                    myWorkSheet.Cells[2, 5] = "游戏名称";
                    myWorkSheet.Cells[2, 6] = "游戏帐号";
                    myWorkSheet.Cells[2, 7] = "订单号";
                    myWorkSheet.Cells[2, 8] = "订单状态";
                    myWorkSheet.get_Range(myWorkSheet.Cells[1, 1], myWorkSheet.Cells[1, 8]).MergeCells = true;

                    int i = 0;
                    foreach (DataRow dt in ds.Rows)
                    {

                        myWorkSheet.Cells[3 + i, 1] = dt["FTime"].ToString(); //数据库字段。。没有前面的lb
                        myWorkSheet.Cells[3 + i, 2] = dt["FOperatorID"].ToString();
                        myWorkSheet.Cells[3 + i, 3] = dt["FIPAddr"].ToString();
                        myWorkSheet.Cells[3 + i, 4] = dt["FPubIP"].ToString();
                        myWorkSheet.Cells[3 + i, 5] = dt["FGameName"].ToString();
                        myWorkSheet.Cells[3 + i, 6] = dt["FAccNo"].ToString();
                        myWorkSheet.Cells[3 + i, 7] = dt["FOrderNo"].ToString();
                        myWorkSheet.Cells[3 + i, 8] = dt["FOrderState"].ToString();
                        i++;
                    }
                }
                else MessageBox.Show(this, "请选择订单状态!");
            }
            else MessageBox.Show(this, "请输入要查询的时间段!!!");
             Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Test.xls", Encoding.UTF8).ToString());

            从repeater1里面读数据。
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                myWorkSheet.Cells[3 + i, 1] = (this.Repeater1.Items[i].FindControl("lbFTime") as Label).Text;
                myWorkSheet.Cells[3 + i, 2] = (this.Repeater1.Items[i].FindControl("lbFOperatorID") as Label).Text;
                myWorkSheet.Cells[3 + i, 3] = (this.Repeater1.Items[i].FindControl("lbFIPAddr") as Label).Text;
                myWorkSheet.Cells[3 + i, 4] = (this.Repeater1.Items[i].FindControl("lbFPubIP") as Label).Text;
                myWorkSheet.Cells[3 + i, 5] = (this.Repeater1.Items[i].FindControl("lbFGameName") as Label).Text;
                myWorkSheet.Cells[3 + i, 6] = (this.Repeater1.Items[i].FindControl("lbFAccNo") as Label).Text;
                myWorkSheet.Cells[3 + i, 7] = (this.Repeater1.Items[i].FindControl("lbFOrderNo") as Label).Text;
                myWorkSheet.Cells[3 + i, 8] = (this.Repeater1.Items[i].FindControl("lbFOrderState") as Label).Text;
            }

  • 相关阅读:
    继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程
    为什么Java中Long类型的比float类型的范围小?
    html中<b>标签和<Strong>标签的区别
    在Eclipse中无法链接到svn,出现Previous operation has not finished; run 'cleanup' if it was interrupted异常
    java项目中登陆时记住密码
    部署java项目到服务器
    echarts-------饼形图
    ZTree的api....
    bootstrap loadStep流程节点动态显示
    解析properties文件
  • 原文地址:https://www.cnblogs.com/sheseido/p/1862494.html
Copyright © 2011-2022 走看看