.net数据库实现Excel的导入与导出

参考路径:https://www.cnblogs.com/splendidme/archive/2012/01/05/2313314.html

1.default.aspx文件

  1. <form id="form1" runat="server">
  2. <table style="width: 858px">
  3. <tr>
  4. <td style="width: 334px">
  5. <asp:Button ID="readFromDB" runat="server"
  6.  
  7. OnClick="readFromDB_Click" Text="从数据库读取数据" />
  8. <asp:GridView ID="GridView1" runat="server"
  9.  
  10. AutoGenerateColumns="True" BackColor="White" BorderColor="#E7E7FF"
  11.  
  12. BorderStyle="None" BorderWidth="1px" CellPadding="" Font-Names="Arial"
  13.  
  14. Font-Size="12px" GridLines="Horizontal" RowStyle-HorizontalAlign="Center"
  15.  
  16. Width="98%">
  17. <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
  18.  
  19. <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C"
  20.  
  21. HorizontalAlign="Center" />
  22. <SelectedRowStyle BackColor="#738A9C" Font-Bold="True"
  23.  
  24. ForeColor="#F7F7F7" />
  25. <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C"
  26.  
  27. HorizontalAlign="Right" />
  28. <HeaderStyle BackColor="#4A3C8C" Font-Bold="True"
  29.  
  30. ForeColor="#F7F7F7" HorizontalAlign="Center" />
  31. <AlternatingRowStyle BackColor="#F7F7F7" /> </asp:GridView>
  32. <asp:FileUpload ID="FileUpload1" runat="server" />
  33. <asp:Button ID="Import" runat="server" OnClick="Import_Click" Text="
  34.  
  35. 导入" />
  36. <asp:Button ID="output" runat="server" OnClick="btnOut_Click" Text="
  37.  
  38. 导出" />
  39. </td>
  40. </tr>
  41. </table>
  42. </form>

2.default.aspx.cs文件

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using System.Data.SqlClient;
  12. using System.Data.OleDb;
  13. using System.Text;
  14. using JJoobb.Web;
  15. using System.IO;
  16. public partial class _Default : System.Web.UI.Page
  17. {
  18. string strConn = SiteSetting.ConnectionString;
  19. string sqlSelectALL = SiteSetting.sqlSelALL;
  20. string exToDB = SiteSetting.ExToDB;
  21. protected void Page_Load(object sender, EventArgs e)
  22. {
  23.  
  24. }
  25. protected void readFromDB_Click(object sender, EventArgs e)
  26. {
  27. Bind();
  28. }
  29. public void btnOut_Click(object sender, EventArgs e)
  30. {
  31. try
  32. {
  33. CreateExcel(getds());
  34. Response.Write("<script>alert('数据导出成功!')</script>");
  35. }
  36. catch
  37. {
  38. Response.Write("<script>alert('数据导出失败!')</script>");
  39. }
  40. }
  41. public void CreateExcel(DataSet ds)
  42. {
  43. string outPutPath=SiteSetting.OutPutPath +DateTime.Now.ToString
  44.  
  45. ("yyyyMMddHHmmss-")+SiteSetting.FileName;
  46. FileStream file = new FileStream(outPutPath, FileMode.Create);
  47. StreamWriter sw = new StreamWriter(file,Encoding.Default);//设置编码为当
  48.  
  49. 面页面编码
  50. string colHeaders = "", ls_item = "";
  51. //定义表对象与行对象,同时用DataSet对其值进行初始化
  52. DataTable dt = ds.Tables[];
  53. DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数
  54.  
  55. 据筛选目的
  56. int i = ;
  57. int cl = dt.Columns.Count;
  58. //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车
  59.  

  60. for (i = ; i < cl; i++)
  61. {
  62. if (i == (cl - ))//最后一列,加\n
  63. {
  64. colHeaders += dt.Columns[i].Caption.ToString() + "\n";
  65. }
  66. else
  67. {
  68. colHeaders += dt.Columns[i].Caption.ToString() + "\t";
  69. }
  70. }
  71. sw.Write(colHeaders);
  72. foreach (DataRow row in myRow)
  73. {
  74. //当前行数据写入输出流,并且置空ls_item以便下行数据
  75. for (i = ; i < cl; i++)
  76. {
  77. if (i == (cl - ))
  78. {
  79. ls_item += row[i].ToString() + "\n";
  80. }
  81. else
  82. {
  83. ls_item += row[i].ToString() + "\t";
  84. }
  85. }
  86. sw.Write(ls_item);
  87. ls_item = "";
  88. }
  89. sw.Flush();
  90. sw.Close();
  91. file.Close();
  92. }
  93.  
  94. //从数据库取出要导出的Detset数据集
  95. private DataSet getds()
  96. {
  97. SqlConnection conns = new SqlConnection(strConn);
  98. SqlDataAdapter da = new SqlDataAdapter(sqlSelectALL, conns);
  99. DataSet ds = new DataSet();
  100. da.Fill(ds);
  101. conns.Close();
  102. conns.Dispose();
  103. return ds;
  104. }
  105. //绑定数据
  106. public void Bind()
  107. {
  108. DataSet ds = new DataSet();
  109. using (SqlConnection conn = new SqlConnection())
  110. {
  111. SqlDataAdapter sda = new SqlDataAdapter(sqlSelectALL, strConn);
  112. sda.Fill(ds, "ex_test");
  113. }
  114. GridView1.DataSource = ds.Tables["ex_test"];
  115. GridView1.DataBind();
  116. }
  117. //导入数据
  118. protected void Import_Click(object sender, EventArgs e)
  119. {
  120. string getErrMsg = "";
  121. DataSet excelDs = new DataSet();
  122. if (FileUpload1.PostedFile.FileName == "")
  123. {
  124. Response.Write("<script language=javascript>alert('请选择要上传的文件
  125.  
  126. !');</script>");
  127. return;
  128. }
  129. //从Excel读取数据
  130. string filePath = FileUpload1.PostedFile.FileName;
  131. string connString = exToDB + filePath;
  132. OleDbConnection excelConn = new OleDbConnection(connString);
  133. OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM
  134.  
  135. [Sheet1$]", excelConn);
  136. try
  137. {
  138. ExcelDA.Fill(excelDs, "ex_test");
  139. }
  140. catch (Exception err)
  141. {
  142. Response.Write(err.Message);
  143. }
  144. finally
  145. {
  146. excelConn.Close();
  147. excelConn = null;
  148. }
  149. //将数据写入数据库
  150. if (excelDs.Tables[].Rows.Count != )
  151. {
  152. SqlConnection sqlConn = new SqlConnection(strConn);
  153. sqlConn.Open();
  154. SqlCommand myCommand = sqlConn.CreateCommand();
  155. SqlTransaction myTrans = sqlConn.BeginTransaction();
  156. myCommand.Transaction = myTrans;
  157. try
  158. {
  159. for (int i = ; i < excelDs.Tables[].Rows.Count; i++)
  160. {
  161. string sql = "insert into ex_test(id, name, sex,email,address) values('"
  162.  
  163. + excelDs.Tables[].Rows[i]["编号"].ToString() + "','" + excelDs.Tables[].Rows[i]["
  164.  
  165. 姓名"].ToString() + "','" + excelDs.Tables[0].Rows[i]["性别"].ToString() + "','" +
  166.  
  167. excelDs.Tables[].Rows[i]["邮箱"].ToString() + "','" + excelDs.Tables[].Rows[i]["地
  168.  
  169. 址"].ToString() + "')";
  170. myCommand.CommandText = sql; myCommand.ExecuteNonQuery();
  171. }
  172. myTrans.Commit();
  173. }
  174. catch (Exception ex)
  175. {
  176. getErrMsg = ex.Message.ToString();
  177. Response.Write(ex.Message.ToString());
  178. myTrans.Rollback();
  179. }
  180. finally
  181. {
  182. sqlConn.Close();
  183. sqlConn = null;
  184. }
  185.  
  186. }
  187. //返回提示信息
  188. if (getErrMsg == "" || getErrMsg == null)
  189. {
  190. Response.Write("<script language='Javascript'>alert('导入成功!')
  191.  
  192. </script>");
  193. Bind();
  194. }
  195. else
  196. {
  197. Response.Write("<script language='Javascript'>alert('导入失败!')
  198.  
  199. </script>");
  200. return;
  201. }
  202. }
  203.  
  204. }

3.SiteSetting.cs

  1. using System;
  2. using System.Configuration;
  3. using System.Collections.Generic;
  4. using System.Text;
  5.  
  6. /// <summary>
  7. /// SiteSetting 的摘要说明
  8. /// </summary>
  9. namespace JJoobb.Web
  10. {
  11. public class SiteSetting
  12. {
  13. //数据库连接字符串
  14. public static string ConnectionString =
  15.  
  16. ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
  17.  
  18. //导出文件名称
  19. public static string FileName = "OutPut.xls";
  20.  
  21. //导出文件地址
  22. public static string OutPutPath = "C:\\Documents and
  23.  
  24. Settings\\Administrator\\桌面\\excleFile\\";
  25.  
  26. //sql语句
  27. public static string sqlSelALL = "select
  28.  
  29. id,title,contents,userName,phone,email,CONVERT(varchar(), AddDate, )
  30.  
  31. AddDate,ReContents from Feedback";
  32.  
  33. //从excel读数据
  34. public static string ExToDB = "Provider=Microsoft.Jet.OLEDB.4.0;Extended
  35.  
  36. Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=";
  37. }
  38. }

4.web.config

  1. <connectionStrings>
  2. <add name="connectionString"
  3.  
  4. connectionString="server=local;uid=sa;pwd=pwd;database=TestExcel"
  5.  
  6. providerName="System.Data.SqlClient"/>
  7. </connectionStrings>

.net数据库实现Excel的导入与导出的更多相关文章

  1. SpringBoot中关于Excel的导入和导出

    前言   由于在最近的项目中使用Excel导入和导出较为频繁,以此篇博客作为记录,方便日后查阅.本文前台页面将使用layui,来演示对Excel文件导入和导出的效果.本文代码已上传至我的gitHub, ...

  2. excel的导入与导出---通用版

    excel的导入与导出---通用版 web项目关于导入导出的业务场景很常见,最近我就又遇到了这个业务场景.这次将最近半个月做的导入导出总结一下 使用的pom如下,主要还是阿里巴巴的easyexcel依 ...

  3. C#中Excel的导入和导出的几种基本方式

    在上一篇(http://www.cnblogs.com/fengchengjushi/p/3369386.html)介绍过,Excel也是数据持久化的一种实现方式.在C#中.我们常常会与Excel文件 ...

  4. Excel报表开发(主要讲Excel的导入和导出)

    一.Excel数据导入 连接字符串Excel2003版: OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet ...

  5. java实现Excel的导入、导出

    一.Excel的导入 导入可采用两种方式,一种是JXL,另一种是POI,但前者不能读取高版本的Excel(07以上),后者更具兼容性.由于对两种方式都进行了尝试,就都贴出来分享(若有错误,请给予指正) ...

  6. SQL Server 迁移数据库 (一)导入和导出

    今天正好换服务器,记录一下迁移数据库的过程. 以前经常用备份还原法,今天试试‘SQL Server 2016 导入和导出数据’这个看怎么玩. 1. 建数据库结构 1.1 在需要迁移的数据库名字上右击, ...

  7. SpringBoot整合easyexcel实现Excel的导入与导出

    导出 在一般不管大的或者小的系统中,各家的产品都一样,闲的无聊的时候都喜欢让我们这些程序员导出一些数据出来供他观赏,非说这是必须需求,非做不可,那么我们就只能苦逼的哼哧哼哧的写bug喽. 之前使用PO ...

  8. 在C#中关于excel的导入和导出操作

    一.先来看看最常见的导入操作吧! private void Import() { //打开excel选择框 OpenFileDialog frm = new OpenFileDialog(); frm ...

  9. mysql数据库中的数据导入与导出

    需求: 在本地电脑上的mysql中创建了一个数据库,并且在该数据库中创建了很多表,表中数据比较多: 现在想换一台电脑,但是又不想重新建数据库.建表.造数据. 解决方案: 利用mysql提供的命令,在本 ...

随机推荐

  1. Javascript 使用 async 声明符和 await 操作符进行异步操作

    async function 声明用于定义一个返回 AsyncFunction 对象的异步函数 await  操作符用于等待一个Promise 对象.它只能在异步函数 async function 中 ...

  2. mac安装linux双系统的吐槽

    [First day] 尝试安装mac - linux 双系统 首先,尝试的是ubuntu16.06版本,要把双系统安装至电脑硬盘512G SSD中, *** 分盘 1.1 打开实用工具中的磁盘管理工 ...

  3. 关于css 的兼容设置 ----笔记

    在开发网页的时候,由于浏览器的差异,会造成css 代码需要写不同的样式,才能适配大部分浏览器,这很烦,但是又不得不做,我把其中用得比较多的那些,做了一个归纳,放在这里,开发的时候,直接打开这里,复制粘 ...

  4. 1.Sed | Awk | Grep | Find

    1.Sed | Awk | Grep | Find 可以参考的文档链接 CentOS7 查看 当前机器 已经启动的端口的Shell命令: netstat -lntup | awk -F' ' {'pr ...

  5. lombok踩坑与思考

    虽然接触到lombok已经有很长时间,但是大量使用lombok以减少代码编写还是在新团队编写新代码维护老代码中遇到的. 我个人并不主张使用lombok,其带来的代价足以抵消其便利,但是由于团队编码风格 ...

  6. jquery中的 deferred之 when (三)

    先来看使用案例: var def1 = $.Deferred(); var def2 = $.Deferred(); var def3 = $.Deferred(); var def4 = $.Def ...

  7. Unity3D人脸建模 AvataSDK研究

    1.Unity与windows交互 调用文件浏览器 1.用C#调用comdlg32.dll  ,  利用GetOpenFileName实现打开文件对话框 <1> 整体参考https://w ...

  8. Windows7下安装、部署Weblogic和发布war项目

    安装 1 从官方下载安装包 链接 2 下载之后,放到 Java8\jdk1.8.0\bin目录下 3 打开cmd,输入 java -jar . 4 5 6 下面是我自定义的目录, 7 8 9 10 1 ...

  9. Debian 9 Stretch国内常用镜像源

     随着Debian 9的普及,但由于伟大的墙的存在,那就有必要整理一下国内的镜像站点. 1.使用说明 一般情况下,修改/etc/apt/sources.list文件,将Debian的默认源地址改成新的 ...

  10. oracle优化(一)

    非原创 1. 选用合适的ORACLE优化器 ORACLE的优化器有3种: a. RULE(基于规则)b. COST(基于成本) c. CHOOSE(选择性) 选择缺省的优化器,可以通过对init.or ...