//创建一个数据链接
// string strCon =" Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0} ;Extended Properties='Excel 8.0;HDR=yes'";
//@"Provider=Microsoft.ACE.OleDb.12.0;Data Source="+path+";Extended Properties='Excel 12.0;HDR=YES'";
// HDR=NO 即无字段
// HDR=yes 即有字段,一般默认excel表中第1行的列标题为字段名,如姓名、年龄等
//如果您在连接字符串中指定 HDR=NO,Jet OLE DB 提供程序将自动为您命名字段(F1 表示第一个字段,F2 表示第二个字段,依此类推);
// IMEX 表示是否强制转换为文本
// Excel 驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。
//如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时),
//驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。
//(如果各种数据类型的数量相当,则采用数值类型。)
//Excel 工作表中大部分单元格格式设置选项不会影响此数据类型判断。
//可以通过指定导入模式来修改 Excel 驱动程序的此行为。
//若要指定导入模式,请在“属性”窗口中将 IMEX=1 添加到 Excel
//连接管理器的连接字符串内的扩展属性值中。 //打开连接后,查询语句//" SELECT * FROM [Sheet1$] "; 1.excel数据显示页面 2.excel数据导入到数据库中 3.excel中数据修改,新增,删除
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="StudentMS.aspx.cs" Inherits="WebApplication1.StudentMS" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<p>
excle文件:<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button3" runat="server" Text="导入" onclick="Button3_Click" />
<br />
</p>
<p>
<asp:Button ID="Button1" runat="server" Text="预览数据库中的数据"
onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="导出" onclick="Button2_Click" />
</p>
<p>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</p>
<p>
</p>
</asp:Content>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;
using System.Data.OleDb;
using System.Data.SqlClient; namespace WebApplication1
{
public partial class StudentMS : System.Web.UI.Page
{
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=yes'";
string connS = "server=STER-PC;uid=sa;pwd=123;database=t2";
protected void Page_Load(object sender, EventArgs e)
{
string fileName = "content/student.xls";
fileName = Server.MapPath(fileName);
connStr = string.Format(connStr, fileName);//连接字符串
} private void BindList()
{
string sql = "select * from [Sheet1$]";
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn); OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
GridView1.DataSource = dt;
GridView1.DataBind();
} //导出
protected void Button2_Click(object sender, EventArgs e)
{ //1.复制一份模板,将temp复制一份
string oldpath = Server.MapPath("content/student.xls");
string npath = Server.MapPath("content/temp.xls");
if (File.Exists(npath))
{
File.Delete(npath);
}
File.Copy(oldpath,npath );
//2.查询数据表
string sql = "select * from sheet1";
SqlConnection conn = new SqlConnection(connS);
conn.Open();
SqlCommand cmd = new SqlCommand(sql,conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"bb");
DataTable dt = ds.Tables["bb"];
//3、将数据插入到表格中 string sqlOleDb = "insert into [Sheet1$] values(@a,@b,@c)";
OleDbParameter[] pms = new OleDbParameter[];
OleDbConnection oconn = new OleDbConnection(connStr);
oconn.Open();
OleDbCommand ocmd = new OleDbCommand(sqlOleDb,oconn);
foreach (DataRow item in dt.Rows)
{
string id = item["编号"].ToString();
string name = item["姓名"].ToString();
string sex = item["性别"].ToString(); pms[] = new OleDbParameter("@a",id);
pms[] = new OleDbParameter("@b",name);
pms[] = new OleDbParameter("@c",sex); foreach (OleDbParameter itemo in pms)
{
ocmd.Parameters.Add(itemo);
}
int i = ocmd.ExecuteNonQuery(); }
conn.Close();
oconn.Close(); Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attchment;filename=aaa.xls");
FileStream fs = new FileStream(Server.MapPath("content/temp.xls"), FileMode.Open, FileAccess.Read, FileShare.Read);
Stream st = Response.OutputStream;
byte[] bt = new byte[];
while (true)
{
int len = fs.Read(bt, , bt.Length);
if (len == ) break;
st.Write(bt, , len);
Response.Flush();
} fs.Close();
Response.End();
Response.Write("导出成功"); #region
//int oi = 1;
//string cid = "";
//string cname = "";
//string csex = "";
////1.把temp.xls复制一份(data.xls) File.Copy()
//File.Copy(MapPath("content/temp.xls"), MapPath("content/student55.xls"));
////2.把数据库中的student数据查询出来
//string sqlc = "select * from sheet1";
//SqlConnection connc = new SqlConnection(connS);
//connc.Open();
//SqlCommand cmdc = new SqlCommand(sqlc, connc);
//SqlDataAdapter dac = new SqlDataAdapter(cmdc);
//DataSet dsc = new DataSet();
//DataTable dtc = dsc.Tables["aa"];
////把查询出来的数据一条条插入到data.xls,
//foreach (DataRow item in dtc.Rows)
//{
// cid = item["id"].ToString();
// cname = item["name"].ToString();
// csex = item["sex"].ToString(); // string ofileName = "content/temp.xls";
// ofileName = Server.MapPath(ofileName);
// connStr = string.Format(connStr, ofileName);//连接字符串
// string osql = "select * from [Sheet1$]";
// OleDbConnection oconn = new OleDbConnection(connStr);
// oconn.Open();
// OleDbCommand ocmd = new OleDbCommand(osql, oconn);
// OleDbDataAdapter oda = new OleDbDataAdapter(ocmd);
// OleDbParameter[] pm = new OleDbParameter[3];
// pm[0] = new OleDbParameter("@a", cid);
// pm[1] = new OleDbParameter("@b", cname);
// pm[2] = new OleDbParameter("@c", csex);
// DataSet ods = new DataSet();
// oda.Fill(ods, "bb");
// DataTable odt = ods.Tables["bb"];
// foreach (OleDbParameter oitem in pm)
// { // ocmd.Parameters.Add(oitem);
// }
// oi += ocmd.ExecuteNonQuery();
// oconn.Close();
//}
//if (oi > 1)
//{
// Response.Write("写入xls成功");
//}
//else
//{
// Response.Write("写入xls失败");
//}
//connc.Close();
//Response.ContentType = "application/vnd.ms-excel";
//Response.AddHeader("content-disposition", "attchment;filename=aaa.zip");
//FileStream fs = new FileStream(Server.MapPath("content/temp.xls"), FileMode.Open, FileAccess.Read, FileShare.Read);
//Stream st = Response.OutputStream;
//byte[] bt = new byte[102400];
//while (true)
//{
// int len = fs.Read(bt, 0, bt.Length);
// if (len == 0) break;
// st.Write(bt, 0, len);
// Response.Flush();
//} fs.Close();
//Response.End(); ////3把data.xls发送出去 #endregion
}
//预览
protected void Button1_Click(object sender, EventArgs e)
{
BindList();
}
//导入
protected void Button3_Click(object sender, EventArgs e)
{
//1.选择的文件上传到服务器的文件夹
string type = Path.GetExtension(FileUpload1.FileName);
string fileNamae = "content/" +FileUpload1.FileName;
//保存
FileUpload1.SaveAs(Server.MapPath(fileNamae)); //2.把刚上传的这个excel文件中的内容查询出来
string id = "";
string name = "";
string sex = "";
int i = ;
string sql = "select * from [Sheet1$]";
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql,conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds=new DataSet();
da.Fill(ds, "aa");
DataTable dt = ds.Tables["aa"]; foreach (DataRow item in dt.Rows)
{
id = item["编号"].ToString();
name = item["姓名"].ToString();
sex = item["性别"].ToString(); string sqli = "insert into sheet1 values(@a,@b,@c)";
SqlConnection conni = new SqlConnection(connS);
conni.Open();
SqlCommand cmdi = new SqlCommand(sqli, conni);
SqlParameter[] pm = new SqlParameter[];
pm[] = new SqlParameter("@a", id);
pm[] = new SqlParameter("@b", name);
pm[] = new SqlParameter("@c", sex);
foreach (SqlParameter item1 in pm)
{
cmdi.Parameters.Add(item1);
}
i+= cmdi.ExecuteNonQuery();
conni.Close();
}
if (i>)
{
Response.Write("导入成功");
}
else
{
Response.Write("导入失败");
} conn.Close();
//一条条的插入列sqlserver数据库中 }
}
}

ASP.NET导入导出的更多相关文章

  1. ASP.NET导入导出Excel方法大全

    本文介绍下,C#实现的可以导出与导入excel的代码一例,有需要的朋友,参考下吧. C#实现导出与导入excel.代码1: 复制代码 代码示例:#region  导出Excel  /// <su ...

  2. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  3. asp.net core web的导入导出excel功能

    这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core ...

  4. ASP.NET Core导入导出Excel文件

    ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...

  5. c#.net 使用NPOI导入导出标准Excel (asp.net winform csharp)

    尝试过很多Excel导入导出方法,都不太理想,无意中逛到oschina时,发现了NPOI,无需Office COM组件且不依赖Office,顿时惊为天人,怀着无比激动的心情写下此文. 曾使用过的方法 ...

  6. ASP.NET- 使用NPOI导入导出标准Excel

    尝试过很多Excel导入导出方法,都不太理想,无意中逛到oschina时,发现了NPOI,无需Office COM组件且不依赖Office,顿时惊为天人,怀着无比激动的心情写下此文. 曾使用过的方法 ...

  7. ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...

  8. asp.net core导出导入excel

    使用NPOI导入导出excel,已经封装好Action可以直接调用 导出 效果图 使用方法 定义导出实体 class Student { public int Id { get; set; } pub ...

  9. ASP .Net C# ---Excel导入导出方法

    导入导出的方法以及引用,可以自行创建一个帮助类 using System;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HS ...

随机推荐

  1. DDR(二)

    DDR与SDRAM的最大区别:内部L-Bank的规格不同. SDRAM中的L-Bank存储单元的容量与芯片位宽相同, DDRAM中的存储单元的容量是芯片位宽的一倍. 所以一次的地址访问,可以进行2-P ...

  2. MyEclipse 死掉,JVM terminated. Exit code=1073807364

    刚入手的新成员,刚开始使用myeclipse,是不是会有一大堆的问题,然后没有目标的走,这里有个小技巧,那就是如果做项目出现问题,一定要自己现在网络搜寻答案,网络时代.技术时代走到现在,一定有他的道理 ...

  3. 关于windows操作系统的内核

    操作系统内核.从本质上来讲,它本身也是一个程序.比如windows的内核 ntoskrnl.exe 就是一个我们平常看到的 PE 文件,它的位置位于 \WINDOWS\system32\ntoskrn ...

  4. javascript中字符串格式json如何转化成json对象

    什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于 ...

  5. Main函数参数argc,argv说明

    C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) ...

  6. linux_c学习笔记之curl的使用一

    参考文档 使用libcurl发送PUT请求上传数据以及DELETE请求删除数据 http://blog.163.com/lixiangqiu_9202/blog/static/535750372014 ...

  7. UINavigationController详解三(转)ToolBar

    原文出自:http://blog.csdn.net/totogo2010/article/details/7682641,特别感谢. 1.显示Toolbar  在RootViewController. ...

  8. 视频处理控件TVideoGrabber如何对屏幕进行录制/压缩

    TVideoGrabber可以对屏幕进行录制和压缩,本文来详细的说明在多种情况下TVideoGrabber是如何实现屏幕的录制和压缩. 屏幕录制 当VideoSource = vs_ScreenRec ...

  9. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  10. Backup: Flow Control in Perl6

    Control Flow 注意空格,注意空格,注意空格 和 Perl5不同的是,这些结构都可以返回值,而且即使倒置结构也可以用 block 了 block 可以有逗号 with without orw ...