资源描述:
《在aspnet中读写excel文件有四种解决方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在ASP.NET中读写Excel文件有四种解决方案在ASP.NET应用程序常常会遇到需要从Excel文件中读取数据或将数据写入Excel的需求。一般来讲,在ASP.NET中读写Excel文件有四种解决方案。1.1.1使用OLEDB使用OLEDB可以以查询数据库的方式来读取Excel文件,因为在某种程度上Excel表格可以看成是一张一张的数据表。其二者的主要区别在于所使用的数据引擎不一样。使用OLEDB访问Excel的要点是计算机上必须具有MicrosoftAccessDataComponent2.6(MADC2.6)以上版本,同时在连接字符串
2、上必须声明“ExtendedProperties=Excel8.0”,这里的指定Excel版本号如果高于8.0可能会出错,所以一般来讲必须使用Excel8.0。然后其它的写法就和一般的访问数据库一样了,打开连接,填充数据集,再关闭连接即可。例如下面的实现代码://创建一个数据链接stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\sample.xls;ExtendedProperties=Excel8.0";OleDbConnectionmyConn=newOleDbCo
3、nnection(strCon);stringstrCom="SELECT*FROM[Sheet1$]";myConn.Open();//打开数据链接,得到一个数据集OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);//创建一个DataSet对象myDataSet=newDataSet();//得到自己的DataSet对象myCommand.Fill(myDataSet,"[Sheet1$]");//关闭此数据链接myConn.Close();代码7-1使用这种解决方案的
4、优点是不需要其他的服务器组件,部署非常方便,但是其缺点也是明显的,用它来读取Excel2003格式以上的文件会存在数据丢失的情况,而且也无法生成Excel文件。1.1.2使用Office主互操作程序集另外一种解决方案是使用Office主互操作程序集,采用这种方式需要在服务器上安装Office2003。但是能够比较精细的控制Excel文件的方方面面,包括格式、字体、颜色等等。下面的代码演示了如何读取Excel文件中某个单元格的值:stringexcelFilePath=@"D:Book1.xls";Excel.ApplicationmyExc
5、el=newExcel.ApplicationClass();objectoMissing=System.Reflection.Missing.Value;myExcel.Application.Workbooks.Open(excelFilePath,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);Excel.WorkbookmyBook
6、=myExcel.Workbooks[1];Excel.WorksheetmySheet=(Excel.Worksheet)myBook.Worksheets[1];System.Data.DataTabledt=newSystem.Data.DataTable("mytable");dt.Columns.Add("F1",System.Type.GetType("System.String"));dt.Columns.Add("F2",System.Type.GetType("System.String"));dt.Columns.Add(
7、"F3",System.Type.GetType("System.String"));dt.Columns.Add("F4",System.Type.GetType("System.String"));dt.Columns.Add("F5",System.Type.GetType("System.String"));DataSetmyDs=newDataSet();myDs.Tables.Add(dt);DataRowmyRow;myDs.Clear();for(inti=2;i<=4;i++)//第一行为标题,不读取{myRow=myDs.
8、Tables["mytable"].NewRow();for(intj=1;j<=5;j++){Excel.Ranger=(Excel.Range)mySheet.