EXCEL读取与写入数据的最佳方案[转]

转载 2006年06月21日 19:43: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="+ Path +";"+"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="+ Path +";"+"Extended Properties=Excel 8.0;";
 OleDbConnection conn = new OleDbConnection(strConn);
 DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.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 ="+path1+";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(myCommand);
 //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另一条思路,具体案例具体开发!!!!!!! 

EXCEL读取与写入数据的最佳方案

在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为EXCEL组件没有帮助提示),写的程序还是大篇的重复代码。为什么为这样那?因为我们总是把一个...
  • tonyandamy
  • tonyandamy
  • 2008年10月27日 20:11
  • 172

EXCEL读取与写入数据的最佳方案[转]

在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为EXCEL组件没有帮助提示),写的程序还是大篇的重复代码。为什么为这样那?因为我们总是把一个...
  • xdfwsl
  • xdfwsl
  • 2007年01月11日 10:40
  • 689

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

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

[转贴]EXCEL读取与写入数据的最佳方案

 [转贴]EXCEL读取与写入数据的最佳方案 EXCEL读取与写入数据的最佳方案(个人认为)在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为...
  • sleeper520
  • sleeper520
  • 2007年07月12日 12:29
  • 362

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

在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为EXCEL组件没有帮助提示),写的程序还是大篇的重复代码。为什么为这样那?因为我们总是把一个...
  • xyuxlu
  • xyuxlu
  • 2006年03月30日 10:13
  • 2317

EXCEL读取与写入数据的最佳方案(个人认为)

EXCEL读取与写入数据的最佳方案(个人认为)在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为EXCEL组件没有帮助提示),写的程序还是大篇...
  • WindowsBoy
  • WindowsBoy
  • 2005年06月16日 21:32
  • 3364

MFC向Excel读取、写入数据(OLE/COM)

原文链接:http://blog.csdn.net/u014023993/article/details/25799877 通过MFC向Excel写入数据代码: ...
  • baidu_37503452
  • baidu_37503452
  • 2017年06月02日 12:47
  • 716

java操作excel之创建excel文件,并写入数据

package excel; //生成Excel的类 import java.io.File; import jxl.Workbook; import jxl.write.Label; impor...
  • lgx06
  • lgx06
  • 2012年11月10日 13:55
  • 1855

EXCEL读取与写入数据的最佳方案(转自林海源的专栏)

http://blog.csdn.net/WindowsBoy/archive/2005/06/16/396111.aspx
  • coolbw
  • coolbw
  • 2005年06月22日 14:01
  • 1172

word/excel在android读取,写入,更新数据

留着,先做个标记: public class ReadExcel extends Activity {       /** Called when the activity is first crea...
  • ShareUs
  • ShareUs
  • 2016年06月02日 14:22
  • 1267
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EXCEL读取与写入数据的最佳方案[转]
举报原因:
原因补充:

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