c# 导入导出excel

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值