.net数据库实现Excel的导入与导出
.net数据库实现Excel的导入与导出
参考路径:https://www.cnblogs.com/splendidme/archive/2012/01/05/2313314.html
1.default.aspx文件
<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="" 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>
2.default.aspx.cs文件
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 _Default : 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[];
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数 据筛选目的
int i = ;
int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车 符
for (i = ; i < cl; i++)
{
if (i == (cl - ))//最后一列,加\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 = ; i < cl; i++)
{
if (i == (cl - ))
{
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();
} //从数据库取出要导出的Detset数据集
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, "ex_test");
}
GridView1.DataSource = ds.Tables["ex_test"];
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 = exToDB + filePath;
OleDbConnection excelConn = new OleDbConnection(connString);
OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", excelConn);
try
{
ExcelDA.Fill(excelDs, "ex_test");
}
catch (Exception err)
{
Response.Write(err.Message);
}
finally
{
excelConn.Close();
excelConn = null;
}
//将数据写入数据库
if (excelDs.Tables[].Rows.Count != )
{
SqlConnection sqlConn = new SqlConnection(strConn);
sqlConn.Open();
SqlCommand myCommand = sqlConn.CreateCommand();
SqlTransaction myTrans = sqlConn.BeginTransaction();
myCommand.Transaction = myTrans;
try
{
for (int i = ; i < excelDs.Tables[].Rows.Count; i++)
{
string sql = "insert into ex_test(id, name, sex,email,address) values('" + excelDs.Tables[].Rows[i]["编号"].ToString() + "','" + excelDs.Tables[].Rows[i][" 姓名"].ToString() + "','" + excelDs.Tables[0].Rows[i]["性别"].ToString() + "','" + excelDs.Tables[].Rows[i]["邮箱"].ToString() + "','" + excelDs.Tables[].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;
}
} }
3.SiteSetting.cs
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Text; /// <summary>
/// SiteSetting 的摘要说明
/// </summary>
namespace JJoobb.Web
{
public class SiteSetting
{
//数据库连接字符串
public static string ConnectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString; //导出文件名称
public static string FileName = "OutPut.xls"; //导出文件地址
public static string OutPutPath = "C:\\Documents and Settings\\Administrator\\桌面\\excleFile\\"; //sql语句
public static string sqlSelALL = "select id,title,contents,userName,phone,email,CONVERT(varchar(), AddDate, ) AddDate,ReContents from Feedback"; //从excel读数据
public static string ExToDB = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=";
}
}
4.web.config
<connectionStrings>
<add name="connectionString" connectionString="server=local;uid=sa;pwd=pwd;database=TestExcel" providerName="System.Data.SqlClient"/>
</connectionStrings>
.net数据库实现Excel的导入与导出的更多相关文章
- SpringBoot中关于Excel的导入和导出
前言 由于在最近的项目中使用Excel导入和导出较为频繁,以此篇博客作为记录,方便日后查阅.本文前台页面将使用layui,来演示对Excel文件导入和导出的效果.本文代码已上传至我的gitHub, ...
- excel的导入与导出---通用版
excel的导入与导出---通用版 web项目关于导入导出的业务场景很常见,最近我就又遇到了这个业务场景.这次将最近半个月做的导入导出总结一下 使用的pom如下,主要还是阿里巴巴的easyexcel依 ...
- C#中Excel的导入和导出的几种基本方式
在上一篇(http://www.cnblogs.com/fengchengjushi/p/3369386.html)介绍过,Excel也是数据持久化的一种实现方式.在C#中.我们常常会与Excel文件 ...
- Excel报表开发(主要讲Excel的导入和导出)
一.Excel数据导入 连接字符串Excel2003版: OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet ...
- java实现Excel的导入、导出
一.Excel的导入 导入可采用两种方式,一种是JXL,另一种是POI,但前者不能读取高版本的Excel(07以上),后者更具兼容性.由于对两种方式都进行了尝试,就都贴出来分享(若有错误,请给予指正) ...
- SQL Server 迁移数据库 (一)导入和导出
今天正好换服务器,记录一下迁移数据库的过程. 以前经常用备份还原法,今天试试‘SQL Server 2016 导入和导出数据’这个看怎么玩. 1. 建数据库结构 1.1 在需要迁移的数据库名字上右击, ...
- SpringBoot整合easyexcel实现Excel的导入与导出
导出 在一般不管大的或者小的系统中,各家的产品都一样,闲的无聊的时候都喜欢让我们这些程序员导出一些数据出来供他观赏,非说这是必须需求,非做不可,那么我们就只能苦逼的哼哧哼哧的写bug喽. 之前使用PO ...
- 在C#中关于excel的导入和导出操作
一.先来看看最常见的导入操作吧! private void Import() { //打开excel选择框 OpenFileDialog frm = new OpenFileDialog(); frm ...
- mysql数据库中的数据导入与导出
需求: 在本地电脑上的mysql中创建了一个数据库,并且在该数据库中创建了很多表,表中数据比较多: 现在想换一台电脑,但是又不想重新建数据库.建表.造数据. 解决方案: 利用mysql提供的命令,在本 ...
随机推荐
- 用户未登录或Session超时时重定向到登录页,不那么简单
在网站开发中,我们经常有这样的场景出现: 情景1:对未登录的用户或没有权限的用户,当其想访问某个受限网页时,系统要能够自动转到登录页面. 情景2:对于用session保存用户状态的情况还有这样一种 ...
- selenium IDE安装与使用
官网介绍: Selenium IDE是一个Firefox插件,它记录并回放用户与浏览器的交互.使用它来创建简单的脚本或者帮助进行探索性测试. 安装流程: 只支持用火狐浏览器安装,可以用火狐浏览器的应用 ...
- ArcGIS案例教程-通过点坐标生成圆
ArcGIS案例教程-通过点坐标生成圆 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:以点坐标为中心,通过指定半径,生成圆 成果形式:绿色工具,免安装,不限版 ...
- 怎样用Python的Scikit-Learn库实现线性回归?
来源商业新知号网,原标题:用Python的Scikit-Learn库实现线性回归 回归和分类是两种 监督 机器 学习算法, 前者预测连续值输出,而后者预测离散输出. 例如,用美元预测房屋的价格是回归问 ...
- 手眼标定eye-to-hand 示例:handeye_stationarycam_calibration
* * This example explains how to use the hand eye calibration for the case where* the camera is stat ...
- C++读取与保持图片
#include<iostream> using namespace std; void main(void) { //保存输入图像文件名和输出图像文件名 ]; ]; //图像数据长度 i ...
- Java框架spring 学习笔记(四):BeanPostProcessor接口
如果我们需要在Spring容器完成Bean的实例化,配置和其他的初始化前后后添加一些自己的逻辑处理. 编写InitHelloWorld.java package com.example.spring; ...
- Google开源软负载seesaw
https://github.com/google/seesaw ------------------------ 在分布式系统中,负载均衡是非常重要的环节,通过负载均衡将请求派发到网络中的一个或多个 ...
- 第五周博客作业 <西北师范大学| 周安伟>
第五周博客作业 一,助教博客链接https://home.cnblogs.com/u/zaw-315/ 二,本周工作查阅项目汇报,班级微信群.对同学们的中期项目汇报进行查看,解决上周留言问题,对及时出 ...
- 2019-04(1)(Python学习)
9.1 迭代器 创建迭代器的3种方法: 方法一: 容器对象添加 __iter__() 和 __next__() 方法(Python 2.7 中是 next()):__iter__() 返回迭代器对象本 ...