一、Excel数据导入

      连接字符串Excel2003版:

OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Extended properties=\"Excel 8.0;\";Data Source=" + path);

      连接字符串Excel2007版:

string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + "Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(strConn);

      1、将Excel的数据导入数据库,后台代码

          

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.Data.OleDb; namespace 操作excel
{
public partial class excelToDataBase : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
public string ExportExcel(string path)
{
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Extended properties=\"Excel 8.0;\";Data Source=" + path);
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter("select* from [sheet1$]", conn);
DataSet ds = new DataSet();
da.Fill(ds);
string sql = string.Empty; for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
sql += string.Format("insert into student values('{0}','{1}','{2}','{3}')", ds.Tables[].Rows[i][].ToString(), ds.Tables[].Rows[i][].ToString()
, ds.Tables[].Rows[i][].ToString(), ds.Tables[].Rows[i][].ToString()); }
int rowcount = DbHelper.ExecuteSql(sql);
if (rowcount>)
{ return "ok";
}
else
{ return "no";
} } protected void btnExport_Click(object sender, EventArgs e)
{
string path = Server.MapPath("student.xls");
if (ExportExcel(path) == "ok")
{
this.lbltext.Text="导入数据成功!";
}
else
{
this.lbltext.Text = "导入失败";
}
}
}
}

前台代码:

    <asp:Button ID="btnExport" runat="server" Text="导入数据"
onclick="btnExport_Click" /><br />
<asp:Label ID="lbltext" runat="server" Text=""></asp:Label>

      2、将Excel数据导入Gridview

    public partial class excelToGridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string path = Server.MapPath("~/student.xls");
gvExcel.DataSource = Getexcel(path);
gvExcel.DataBind(); } public DataSet Getexcel(string path)
{
OleDbConnection conn=new OleDbConnection ("provider=Microsoft.Jet.OLEDB.4.0;Extended properties=\"Excel 8.0;\";Data Source="+path);
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter("select* from [sheet1$]", conn);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close(); return ds;
}

二、Excel对象模型

    需要右键添加引用Excel  Library

    1、将数据库中的数据写入Excel,操作服务器(保存到服务器)

 protected void btnExport_Click(object sender, EventArgs e)
{
//创建Excel Application对象
Excel.Application app = new Excel.Application();
//创建workBook对象
Excel.Workbook workbook = app.Workbooks.Add(true);//需要获取模板
//创建worksheet对象
Excel.Worksheet worksheet = workbook.Worksheets[];
//设置工作表名称
worksheet.Name = "学生信息";
DataSet ds = DbHelper.Query("select stuNo as 学好,stuName as 姓名,stuSex as 性别,sruClassNo as 班级 from student");
//创建Excel名
for (int col = ; col < ds.Tables[].Columns.Count; col++)
{
worksheet.Cells[, col + ] = ds.Tables[].Columns[col].ColumnName; }
int row = ;
//创建Excel行
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
for (int j = ; j < ds.Tables[].Columns.Count; j++)
{
worksheet.Cells[row, j + ] = ds.Tables[].Rows[i][j].ToString();
}
row++;
}
//保存
workbook.SaveAs(Server.MapPath("~/Excel/student.xls"));
app.Workbooks.Close();
//退出Excel
app.Quit();
}

    2、将数据库中的数据写入Excel,操作客户端(保存到客户端)

    需要使用Aspose.Cells组件

 DataSet ds = DbHelper.Query("select stuNo,stuName,stuSex,sruClassNo from student");
if (ds.Tables[].Rows.Count>)
{
Workbook wb = new Workbook();
Worksheet ws = wb.Worksheets.Add("学生信息");
Cells cells = ws.Cells;
cells["A1"].PutValue("学号");
cells["B1"].PutValue("姓名");
cells["C1"].PutValue("性别");
cells["D1"].PutValue("班级");
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
for (int j = ; j < ds.Tables[].Columns.Count; j++)
{
cells[i + , (byte)j].PutValue(ds.Tables[].Rows[i][j]);
}
} SaveOptions so = wb.SaveOptions;
so.SaveFormat = SaveFormat.Auto;
wb.Save(HttpContext.Current.Response,"stud.xls",ContentDisposition.Attachment,so);
}

    

    

Excel报表开发(主要讲Excel的导入和导出)的更多相关文章

  1. Excel报表开发(本节主要讲述导出到Excel操作)

    一.Excel导入到GridView以及数据库操作比较简单,这儿不做过多讲解,需要注意的有二点: 1.设置IMEX=1将强制混合数据转换为文本. 2.解决Excel驱动程序默认读取8行:将" ...

  2. excel报表开发-- 根据datatable个数自动生成新sheet

    总结一下很久之前做的报表小程序,今日有问题又调试了一下. DB中存在一个表,记录了ID<自增长>,SqlStatement<sql查询语句>及其他必要字段,比如SheetNam ...

  3. Excel报表开发

    读取Excel数据 /// <summary> /// 封装方法 /// </summary> /// <param name="path">& ...

  4. 海量数据Excel报表利器——EasyExcel(一 利用反射机制导出Excel)

    EasyExcel 写入(导出) 互联网的精髓就是共享,可以共享技术.共享经验.共享情感.共享快乐~ 很多年前就有这个想法了,从事IT行业时间也不短了,应该把自己工作和业余所学习的东西记录并分享出来, ...

  5. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

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

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

  7. ASP.NET Core MVC上传、导入、导出知多少

    前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天才研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...

  8. 报表开发之批量导入导出excel

    在日常使用报表过程中,会有这样一种情况,你将Excel表分发给各个员工,员工填完后,统一整理成多个Excel,你需要将这些数据,用报表的填报功能,提交录入到数据库中,这样一来可避免到服务器机房录数据的 ...

  9. 报表工具如何实现多次导入Excel

    很多人在开发报表的时候会遇到将多张表样相同的excel导入到模板,然后提交至数据库中.但问题是很多情况,在线导入不支持一次性选择多个excel,一次只能选择一个excel,也不能将多个excel中的数 ...

随机推荐

  1. JavaScript编写了一个计时器

    初学JavaScript,用JavaScript编写了一个计时器. 设计思想: 1.借助于Date()对象,来不断获取时间点: 2.然后用两次时间点的毫秒数相减,算出时间差: 3.累加时间差,这样就能 ...

  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这 ...

  3. (hdu step 6.3.2)Girls and Boys(比赛离开后几个人求不匹配,与邻接矩阵)

    称号: Girls and Boys Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...

  4. 两个div横向排列,顶端对齐的方式。

    1.左右两个div都设置为float:left,如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整. <!DOCTYPE html PUBLIC "-//W3C/ ...

  5. hardware_hp存储映射_方案

    修改虚拟磁盘映射方式 每个刀片独立对应映射存储空间 这样就不会造成数据写入冲突, old new 步奏: 创建过程  lun号码  1-155 之间 第二步奏 最后 指定: 就ok了 2012年12月 ...

  6. duplicate symbol _*** in:

    duplicate symbol _kReachabilityChangedNotification in: 问题出在同一个文件被引用两次,在项目中找到引用的地方,删掉对应的引用

  7. Factorization Machines 学习笔记(二)模型方程

      近期学习了一种叫做 Factorization Machines(简称 FM)的算法,它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...

  8. 怎样下载并编译Android4.0内核源代码goldfish(图文)

    关于怎样下载Android4.0源代码,请查看我的博客内还有一篇文章(相同是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 ...

  9. nginx的五种负载算法模式

    nginx 负载均衡5种配置方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight  指定轮询几率,weight和访问比率成正比 ...

  10. Hibernate实体映射配置(XML)简单三步完美配置

    我们在使用Hibernate框架的时候,非常纠结的地方就是实体和表之间的映射,今天借助汤老师的思路写了小教程,以后配置不用纠结了! 第一步:写注释 格式为:?属性,表达的是本对象与?的?关系. 例:“ ...