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>
- c#导入导出Excel
- c# 导入导出excel
- c# 导入导出excel
- C#导入、导出Excel
- c# 导入导出excel
- C#导入导出EXCEL
- C# excel导入导出
- c#导入导出Excel
- C#操作Excel导入导出
- C#操作Excel导入导出
- C#操作Excel导入导出
- C# 导出和导入excel
- C# 导出和导入excel
- C# 导入和导出EXCEL
- C#操作Excel(导入导出)
- C#操作Excel(导入导出)
- C#操作Excel(导入导出)
- C#操作Excel(导入导出)[转贴]
- FAFU-1410 九数矩阵 康拓展开
- quick-cocos2dx 组件管理器
- 系统测试用例设计之判定表法
- 庞果英雄会——数组排序
- ArcGIS License Manager 静默授权命令摘录
- c# 导入导出excel
- mvc Pager 分页控件的使用
- spring data jpa save 方法中,不能自动关联,新建的关联项
- c#常用的Datable转换为json,以及json转换为DataTable操作方法
- 用QtCreator做IDE开发非Qt的C/C++程序
- JavaScript调试技巧之:断点调试
- Win8 global::System.Diagnostics.Debugger.Break()
- php实现单链表的实例代码
- 查询所有为空列