C#读取Excel数据操作大全
- 苦丁茶 发表于 2014-02-10 12:58:00 | 分类标签: ASP.NET 读取Excel
本文介绍下,用C#读取excel数据的例子,包括读取整个工作薄的数据、读取工作薄选定区域中的数据、读取excel特定区域中的数据。
例1,读取Excel工作薄中的全部数据。
读取Excel工作薄1(工作薄名称:Sheet1)中的全部数据,在OleDbDataAdapter对象中的SQL语句应为:"Select 字段列表 From [工作表名$]"。代码示例:
public void ReadExcel(string sExcelFile)
{
string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;
Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";
OleDbConnection connection = new OleDbConnection(sConnectionString);
OleDbDataAdapter adp = new OleDbDataAdapter(
"Select * from [Sheet1$]",connection);
DataSet ds = new DataSet();
adp.Fill(ds,"Book1");
grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;
grd_Excel.DataBind();
}例2,读取Excel工作薄选定区域中的数据。
首先,在工作簿中,左键拖拽选取要定义成为表的区域,从菜单中选择‘插入’->‘名称’->‘定义’,在‘定义名称’对话框出现中键入表的名字:“TestTable”,OK。
那么SQL语句应为:SELECT * FROM TestTable。代码示例:
public void ReadExcel(string sExcelFile)
{
string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;
Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";
OleDbConnection connection = new OleDbConnection(sConnectionString);
OleDbDataAdapter adp = new OleDbDataAdapter(
"SELECT * FROM TestTable", connection);
DataSet ds = new DataSet();
adp.Fill(ds,"Book1");
grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;
grd_Excel.DataBind();
}例3,读出excel特定区域的数据。
代码示例:
protected void Button1_Click(object sender, EventArgs e)
{
string filepath=FileUpload1.PostedFile.FileName;
ReadExcel(filepath, gdBom);
}
public void ReadExcel(string sExcelFile,GridView dgBom)
{
DataTable ExcelTable;
DataSet ds = new DataSet();
//Excel的连接
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");
objConn.Open();
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim(); //获取 Excel 的表名,默认值是sheet1
string strSql = "select * from [" + tableName + "]";
OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
myData.Fill(ds, tableName); //填充数据
dgBom.DataSource =ds;
dgBom.DataBind();
objConn.Close();ExcelTable = ds.Tables[tableName];
int iColums = ExcelTable.Columns.Count;//列数
int iRows = ExcelTable.Rows.Count;//行数
//定义二维数组存储 Excel 表中读取的数据
string[,] storedata = new string[iRows, iColums];for(int i=0;i<ExcelTable.Rows.Count;i++)
for (int j = 0; j < ExcelTable.Columns.Count; j++)
{
//将Excel表中的数据存储到数组
storedata[i, j] = ExcelTable.Rows[i][j].ToString();
}
int excelBom = 0; //记录表中有用信息的行数,有用信息是指除去表的标题和表的栏目,本例中表的用用信息是从第三行开始
//确定有用的行数
for (int k = 2; k < ExcelTable.Rows.Count; k++)
if (storedata[k, 1] != "")
excelBom++;
if (excelBom == 0)
{
Response.Write("<script language=javascript>alert('您导入的表格不合格式!')</script>");
}
else
{
//LoadDataToDataBase(storedata,excelBom) //将 storedata 中有用的数据写入到数据库中
}
}转载自http://www.hello-code.com/blog/asp.net/201402/2687.html
C#读取Excel数据操作大全的更多相关文章
- .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...
- Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
- Delphi中使用python脚本读取Excel数据
Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...
- c#读取Excel数据到Gridview
#region 读取Excel数据到Gridview public void ReadExcel(string sExcelFile, GridView dgBom) { DataTable E ...
- Java POI读取Excel数据,将数据写入到Excel表格
1.准备 首先需要导入poi相应的jar包,包括: 下载地址:http://pan.baidu.com/s/1bpoxdz5 所需要的包的所在位置包括: 2.读取Excel数据代码 package S ...
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
- 机器学习之数据预处理,Pandas读取excel数据
Python读写excel的工具库很多,比如最耳熟能详的xlrd.xlwt,xlutils,openpyxl等.其中xlrd和xlwt库通常配合使用,一个用于读,一个用于写excel.xlutils结 ...
- python 的两个模块xlwt,xlrd,写入和读取Excel数据
http://www.cnblogs.com/fireme/p/3887284.html 这上面写的很全,不过我只需要简单的读和写的操作就ok了,下面是我写的读和写入Excel操作 读取Excel数据 ...
- 性能测试工具LoadRunner27-LR之读取Excel数据
为何要读取Excel数据? 很多用户喜欢用Excel来统计数据,比如学生成绩表.个人信息等.有时需要把Excel中的数据来进行参数化,数据量比较多时,一个个在LR里输入是不现实的,因此需要用LR来导入 ...
随机推荐
- FastDFS图片服务器
首先要转一个FastDFS,这个很难装.一般由运维人员安装. git项目fastdfs-client-java由happy fish开发的,down下来后import到项目中maven install ...
- CAJ2PDF
该项目不成熟,很容易遇到转换失败的例子. https://github.com/JeziL/caj2pdf https://github.com/JeziL/caj2pdf/wiki caj2pdf ...
- 13.LockSupport工具
1. LockSupport简介 在之前介绍AQS的底层实现,已经在介绍java中的Lock时,比如ReentrantLock,ReentReadWriteLocks,已经在介绍线程间等待/通知机制使 ...
- linux命令生成公私钥
生成原始rsa私钥文件: openssl genrsa -out rsa_private_key.pem 1024 将原始的rsa私钥转换未pkcs8格式(即生成私钥文件): openssl pkcs ...
- http请求的GET和POST请求:查询和新增(ajax)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- DIV+ul+LI实现表格效果以及div带滑动条
写这个是为了给自己一个好好的笔记,以免下次需要的时候又到处找,费神费事费时费力.开始吧! 1.先看看效果 2.网页代码 <!DOCTYPE html PUBLIC "-//W3C//D ...
- 什么是Quartz?
什么是Quartz Quartz是一个开源的作业调度框架,Quartz根据用户设定的时间规则来执行作业,使用场景:在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知. ...
- SpringInAction-- 配置Profile Bean
Profile Bean 使用场景描述: 在开发软件的时候,在数据库方面,往往不是一个库就能解决的,一般分为开发库.测试库.生产库,在这些库设置链接的时候,也会配置其对应的数据. 现有一种方式,就是单 ...
- DataTable和实体类通过反射相互转换
using System.Runtime.Serialization; using System.Data; using System.Reflection; using System.Collect ...
- Android gradle 安装成功,但是报虚拟机过大的错误处理方法
一.这个是项目中遇到的问题,记下来,以后再出现方便查看. 1.首先看图吧. 虚拟机内容过大 解决办法: 在.gradle目录下更改配置文件gradle.properjties 里面的 将标记的改成51 ...