c# 导入导出excel

来源:互联网 发布:领航员监控软件 编辑:程序博客网 时间:2024/05/16 12:19
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.Data.OleDb;using System.Text;using JJoobb.Web;using System.IO;public partial class Admin_ManageClient_dd : System.Web.UI.Page{    string strConn = SiteSetting.ConnectionString;    string sqlSelectALL = SiteSetting.sqlSelALL;    string exToDB = SiteSetting.ExToDB;    protected void Page_Load(object sender, EventArgs e)    {    }    protected void readFromDB_Click(object sender, EventArgs e)    {        Bind();    }    public void btnOut_Click(object sender, EventArgs e)    {        try        {            CreateExcel(getds());            Response.Write("<script>alert('数据导出成功!')</script>");        }        catch        {            Response.Write("<script>alert('数据导出失败!')</script>");        }    }    public void CreateExcel(DataSet ds)    {        string outPutPath = SiteSetting.OutPutPath + DateTime.Now.ToString("yyyyMMddHHmmss-") + SiteSetting.FileName;        FileStream file = new FileStream(outPutPath, FileMode.Create);        StreamWriter sw = new StreamWriter(file, Encoding.Default);//设置编码为当面页面编码                 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 += dt.Columns[i].Caption.ToString() + "\n";            }            else            {                colHeaders += dt.Columns[i].Caption.ToString() + "\t";            }        }        sw.Write(colHeaders);        foreach (DataRow row in myRow)        {             //当前行数据写入输出流,并且置空ls_item以便下行数据                              for (i = 0; i < cl; i++)            {                if (i == (cl - 1))                {                    ls_item += row[i].ToString() + "\n";                }                else                {                    ls_item += row[i].ToString() + "\t";                }            }            sw.Write(ls_item);            ls_item = "";        }        sw.Flush();        sw.Close();        file.Close();    }    private DataSet getds()    {        SqlConnection conns = new SqlConnection(strConn);        SqlDataAdapter da = new SqlDataAdapter(sqlSelectALL, conns);        DataSet ds = new DataSet();        da.Fill(ds);        conns.Close();        conns.Dispose();        return ds;    }    //绑定数据         public void Bind()    {        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection())        {            SqlDataAdapter sda = new SqlDataAdapter(sqlSelectALL, strConn);            sda.Fill(ds, "Client");        }        GridView1.DataSource = ds.Tables["Client"];        GridView1.DataBind();    }     //导入数据         protected void Import_Click(object sender, EventArgs e)    {        string getErrMsg = "";        DataSet excelDs = new DataSet();        if (FileUpload1.PostedFile.FileName == "")        {            Response.Write("<script language=javascript>alert('请选择要上传的文件!');</script>");            return;        }        //从Excel读取数据            string  filePath = FileUpload1.PostedFile.FileName;        string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=" + filePath;        OleDbConnection excelConn = new OleDbConnection(connString);        OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", excelConn);        try        {            ExcelDA.Fill(excelDs, "Client");        }        catch (Exception err)        {            Response.Write(err.Message);        }        finally        {            excelConn.Close();            excelConn = null;        }        //将数据写入数据库          if (excelDs.Tables[0].Rows.Count != 0)         {             SqlConnection sqlConn = new SqlConnection(strConn);             sqlConn.Open(); SqlCommand myCommand = sqlConn.CreateCommand();             SqlTransaction myTrans = sqlConn.BeginTransaction();             myCommand.Transaction = myTrans;             try             {                for (int i = 0; i < excelDs.Tables[0].Rows.Count; i++)                 {                    string sql = "insert into Client( name, fullname,email) values('"  + excelDs.Tables[0].Rows[i]["姓名"].ToString() + "','" + excelDs.Tables[0].Rows[i]["昵称"].ToString() + "','" + excelDs.Tables[0].Rows[i]["邮箱"].ToString() + "')";                     myCommand.CommandText = sql;                     myCommand.ExecuteNonQuery();                 }                 myTrans.Commit();             }            catch (Exception ex)             {                 getErrMsg = ex.Message.ToString();                 Response.Write(ex.Message.ToString()); myTrans.Rollback();            }             finally            {                 sqlConn.Close(); sqlConn = null;             }         }         //返回提示信息                  if (getErrMsg == "" || getErrMsg == null)                 {                        Response.Write("<script language='Javascript'>alert('导入成功!')</script>");             Bind();         }                else                 {                         Response.Write("<script language='Javascript'>alert('导入失败!')</script>");             return;          }     }}前台aspx页面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="dd.aspx.cs" Inherits="Admin_ManageClient_dd" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server">    <title>导入导出页面</title></head><body><form id="form1" runat="server">     <table style="width: 858px">             <tr>     <td style="width: 334px">    <asp:Button ID="readFromDB" runat="server" OnClick="readFromDB_Click" Text="从数据库读取数据" />      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" Font-Names="Arial" Font-Size="12px" GridLines="Horizontal" RowStyle-HorizontalAlign="Center" Width="98%">                       <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /> <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Center" />                       <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />                       <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />                       <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" HorizontalAlign="Center" />                       <AlternatingRowStyle BackColor="#F7F7F7" /> </asp:GridView>                      <asp:FileUpload ID="FileUpload1" runat="server" />                       <asp:Button ID="Import" runat="server" OnClick="Import_Click" Text="导入" />                      <asp:Button ID="output" runat="server" OnClick="btnOut_Click" Text="导出" />                   </td>               </tr>           </table>           </form></body></html>


0 0
原创粉丝点击