EXCEL读取与写入数据的最佳方案【转载】

原创 2007年09月15日 21:47:00
在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为EXCEL组件没有帮助提示),写的程序还是大篇的重复代码。为什么为这样那?因为我们总是把一个EXCEL文件当做系统文件进行操作。

如果把EXCEL文件当做一个数据源来进行数据的读取操作时,就可以使用开发环境提供的数据访问方法来访问EXCEL文件了。这样就可以使用开发环境的帮助(提示)即快速又不费力的来读取和写入数据到EXCEL中。这样的代码即整洁又高效,同时代码还可以得到复用。

下面的例子是使用.NET对EXCEL文件的读取和写入

示例的应用环境是从其它一个或多个EXCEL中读取数据,然后将多个数据写入到一个汇总的EXCEL(汇总的EXCEL文件只有表头没有数据)。前提是EXCEL文件内的结构是一样的。

Excel文件的读取

public DataSet ExcelToDS(string Path)

{

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ P
ath +";"+"Extended Properties=Excel 8.0;";

OleDbConnection conn = new OleDbConnection(strConn);

conn.Open();

string strExcel = "";

OleDbDataAdapter myCommand = null;

DataSet ds = null;

strExcel="select * from [sheet1$]";

myCommand = new OleDbDataAdapter(strExcel, strConn);

ds = new DataSet();

myCommand.Fill(ds,"table1");

return ds;

}

对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ P
ath +";"+"Extended Properties=Excel 8.0;";

OleDbConnection conn = new OleDbConnection(strConn);

DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.O
leDbSchemaGuid.Tables,null);

string tableName=schemaTable.Rows[0][2].ToString().Trim();

Excel文件的写入

public void DSToExcel(string Path,DataSet oldds)

{

//先得到汇总EXCEL的DataSet 主要目的是获得EXCEL在DataSet中的结构

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+p
ath1+";Extended Properties=Excel 8.0" ;

OleDbConnection myConn = new OleDbConnection(strCon) ;

string strCom="select * from [Sheet1$]";

myConn.Open ( ) ;

OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom, myConn ) ;

ystem.Data.OleDb.OleDbCommandBuilder builder=new OleDbCommandBuilder(my
Command);

//QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。

builder.QuotePrefix="["; //获取insert语句中保留字符(起始位置)

builder.QuoteSuffix="]"; //获取insert语句中保留字符(结束位置)

DataSet newds=new DataSet();

myCommand.Fill(newds ,"Table1") ;

for(int i=0;i<oldds.Tables[0].Rows.Count;i++)

{

//在这里不能使用ImportRow方法将一行导入到news中,因为ImportRow将保留原
来DataRow的所有设置(DataRowState状态不变)。在使用ImportRow后newds内有值,
但不能更新到Excel中因为所有导入行的DataRowState!=Added

DataRow nrow=aDataSet.Tables["Table1"].NewRow();

for(int j=0;j<newds.Tables[0].Columns.Count;j++)

{

nrow[j]=oldds.Tables[0].Rows[i][j];

}

newds.Tables["Table1"].Rows.Add(nrow);

}

myCommand.Update(newds,"Table1");

myConn.Close();

}

以上只是一个示例只能给大家提供一个关于操作EXCEL另一条思路,具体案例具体开
发!!!!!!!


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=644073

 

将oracle数据库中数据写入excel文件

主要实现思路:     1、声明一个纪录,用来存储导出的数据;     2、使用游标取数据到纪录中;     3、使用utl_file将纪录中的数据写入excel文件;     4、循环执行步...
  • it_taojingzhan
  • it_taojingzhan
  • 2015年11月20日 13:44
  • 1181

Java模块 -- 读取Excel文件写入数据库 Mybatis , POI , JXL

废话不多说,直接上代码结构图 所用到的lib包 Students 实体类 package com.test.model; public class Students { privat...
  • Simba_cheng
  • Simba_cheng
  • 2016年06月06日 20:48
  • 3635

Java读取、写入、处理Excel文件中的数据

在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Excel会有...
  • u012777182
  • u012777182
  • 2014年07月10日 13:11
  • 7335

.net(NPOI)实现Excel数据的写入和读取

这里用到了NPOI这个第三方插件实现对Excel数据的写入和读取 写入 List list = new List() { new perso...
  • IstarI
  • IstarI
  • 2016年07月22日 21:02
  • 1889

PHP读取EXCEL文件写入数据库

PHP读取ECEL文件写入数据库功能的实现使用到了PHPExcel类库。    $uploadfile="../upload_files/".basename($_FILES['userfile']...
  • amino77
  • amino77
  • 2013年07月22日 09:14
  • 1587

利用jxl.jar读写excel文件

利用jxl.jar读写excel文件这几天一直没更新笔记,就是因为卡在这里了,不得不说,底子太薄了,不多说进入正题 需要添加的jar包:jxl.jarpackage plansinterface i...
  • story_cheng
  • story_cheng
  • 2015年04月15日 00:00
  • 1218

java读取excel文件并写入另一个excel文件

package com.excel.action; import java.io.BufferedInputStream; import java.io.File; import java....
  • kristenlee1218
  • kristenlee1218
  • 2016年02月22日 10:28
  • 364

Unity-Excel文件的读写

转自:http://www.xuanyusong.com/archives/3011 今天同事告诉我了一个更好的方法进行unity中的读与写 (EPPlus) https://epplus....
  • wlz1992614
  • wlz1992614
  • 2016年06月22日 12:10
  • 1466

使用pandas读写Excel文件

使用pandas读写Excel文件: 模块安装: pip install openpyxl 模块openpyxl源于PHPExcel,它提供了针对.xlsx文件的读写功能 pip ins...
  • qq_24683561
  • qq_24683561
  • 2017年01月16日 18:39
  • 16605

asp.net 读取Excel数据并将数据插入到数据库中

#region 获取数据集         public DataSet GetDataSet(string filePath)         {             //2010以前版本...
  • yangmingxing980
  • yangmingxing980
  • 2014年06月17日 10:23
  • 1312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EXCEL读取与写入数据的最佳方案【转载】
举报原因:
原因补充:

(最多只允许输入30个字)