zoukankan      html  css  js  c++  java
  • 网页数据导出excel

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Sql;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Management;
    using System.Data;
    using Microsoft.Office.Interop.Excel;
    using System.IO;


    namespace test1
    {
       
        public partial class excel
        {

            public  static string _connection=ConfigurationManager.ConnectionStrings["excel"].ConnectionString;
            public System.Data.DataTable returntable()
            {
               System.Data.DataTable table = new System.Data.DataTable();
               string connection = _connection;
                using(SqlConnection con=new SqlConnection(connection))
                {
                    string comandtext = "select * from t_user";
                    using (SqlCommand cmd = new SqlCommand(comandtext,con))
                    {
                        con.Open();
                        SqlDataAdapter command = new SqlDataAdapter(cmd);
                        command.Fill(table);
                   
                   
                   
                    }
               
               
                }
            return table;
            }
           /* private void SaveExcel(DataTable dt, string projectName, string spubdate)
            {

                Response.Clear();
                Response.Buffer = true;
                Response.Charset = "utf-8";
                //解决中文乱码问题
                Response.AppendHeader("Content-Disposition", "online; filename=" + System.Web.HttpUtility.UrlEncode(projectName, System.Text.Encoding.UTF8) + "_" + spubdate + ".xls");
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.ContentType = "application/vnd.ms-excle";
                string colHeaders = "", ls_item = "'";

                ////定义表对象与行对象,同时用DataSet对其值进行初始化
                //DataTable dt = ds.Tables[0];
                DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
                int i = 0;
                int cl = dt.Columns.Count;

                //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))//最后一列,加n
                    {
                        colHeaders += "id" + "\n";
                    }
                    if (i == (cl - 2))
                    {
                        colHeaders += "name" + "\t";
                    }
                   

                }
                Response.Write(colHeaders);
                //向HTTP输出流中写入取得的数据信息

                //逐行处理数据
                foreach (DataRow row in myRow)
                {
                    //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
                    for (i = 0; i < cl; i++)
                    {
                        if (i == (cl - 1))//最后一列,加n
                        {
                            ls_item += row[i].ToString() + "\r\n";

                        }
                        else
                        {
                            ls_item += row[i].ToString() + ",";
                        }

                    }
                    Response.Write(ls_item);
                    ls_item = "'";

                }
                Response.End();
                dt.Clear();
                dt.Dispose();
            }*/
            public void ex(System.Data.DataTable dt,string filename)//此函数为windows应用程序在客户端可以运行,不推荐。
            {
                object objMissing = System.Reflection.Missing.Value;

                Microsoft.Office.Interop.Excel.Application myexcel = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbooks m_objWorkBooks = myexcel.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook m_objWorkBook = m_objWorkBooks.Add(true);
                Microsoft.Office.Interop.Excel.Sheets m_objWorkSheets = m_objWorkBook.Sheets; ;
                //myexcel.Application.Workbooks.Add(true);
                Microsoft.Office.Interop.Excel.Worksheet mysheet = m_objWorkSheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
                Microsoft.Office.Interop.Excel.Range myrang = myexcel.get_Range(myexcel.Cells[1, 1], myexcel.Cells[8, 8]);
                myexcel.Visible = true;
                myexcel.Caption = "lianxi";
                mysheet.Cells[1, 1] = "id";
                mysheet.Cells[2, 2] = "name";
                int i = 2;
                foreach(DataRow row in dt.Rows )
                {
                    mysheet.Cells[i, 1] = row["id"].ToString();
                    mysheet.Cells[i, 2] = row["name"].ToString();
                    i++;
                }
              
                if (File.Exists(filename))
                {
                    File.Delete(filename);
               
               
                }
                m_objWorkBook.SaveAs("f:\\"+filename+".xls ", objMissing, objMissing, objMissing, objMissing, objMissing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared,
    objMissing, objMissing, objMissing, objMissing,
    objMissing);
                myexcel = null;
            }

            #region 生成Excel(Asp.Net)
            /// <summary>
            /// 生成Excel
            /// </summary>
            /// <param name="datatable">数据源</param>
            /// <param name="FileName">文件名(无需后缀)</param>
          /*  public  void CreateExcel(System.Data.DataTable datatable, string FileName)
            {
                HttpResponse resp;
                //resp = Page.Response;
                resp = HttpContext.Current.Response;
                resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName + ".xls");
                string colHeaders = "", ls_item = "";

                //定义表对象与行对象,同时用DataSet对其值进行初始化
                System.Data.DataTable dt = datatable;
                DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的

                int i = 0;
                int cl = dt.Columns.Count;

                //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符

                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))//最后一列,加n
                    {
                        colHeaders += dt.Columns[i].Caption.ToString() + "\n";
                    }
                    else
                    {
                        colHeaders += dt.Columns[i].Caption.ToString() + "\t";
                    }
                }
                resp.Write(colHeaders);
                //向HTTP输出流中写入取得的数据信息


                //逐行处理数据 
                foreach (DataRow row in myRow)
                {
                    //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据   
                    for (i = 0; i < cl; i++)
                    {
                        if (i == (cl - 1))//最后一列,加n
                        {
                            ls_item += row[i].ToString() + "\n";
                        }
                        else
                        {
                            ls_item += row[i].ToString() + "\t";
                        }
                    }
                    resp.Write(ls_item);
                    ls_item = "";
                }
                resp.End();
            }
            */

    #endregion
            public void createxcel(System.Data.DataTable datatable, string filename)
            {
                HttpResponse response;
                response = HttpContext.Current.Response;
                response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                response.AppendHeader("Content-Disposition", "attachment:filename"+filename+".xls");
                string colheaders = "", ls_items = "";
                System.Data.DataTable dt = datatable;
                DataRow[] row = dt.Select();
                int i = 0;
                int cl = dt.Columns.Count;
                for (i = 0; i < cl; i++)
                {
                    if (i == cl - 1)
                    {
                        colheaders += dt.Columns[i].Caption.ToString() + "\n";


                    }
                    else
                    {
                        colheaders += dt.Columns[i].Caption.ToString() + "\t";

                   
                    }
               
                }
                response.Write(colheaders);
                foreach (DataRow rows in row)
                {
                    for (i = 0; i < cl; i++)
                    {
                        if (i == cl)
                        {
                            ls_items += rows[i].ToString() + "\n";

                        }
                        else
                        {

                            ls_items += rows[i].ToString() + "\n";
                        }
                   
                    }
               
                response.Write(ls_items);
                ls_items = "";
                }

                response.End();
            }
        }
      
    }

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 数的统计
    Java实现 蓝桥杯VIP 算法训练 和为T
    Java实现 蓝桥杯VIP 算法训练 友好数
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 暗恋
    Java实现 蓝桥杯VIP 算法训练 暗恋
    测试鼠标是否在窗口内,以及测试鼠标是否在窗口停留
    RichEdit 各个版本介绍
  • 原文地址:https://www.cnblogs.com/guozhenyp/p/2119255.html
Copyright © 2011-2022 走看看