Excel

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: |||超大  

c#读取ExcelPRovider根据实际EXCEL的版本来设置,推荐使用ACE接口来读取。需要access database Engine。

注意修改注册表以下两项的值为0。否则导入EXCEL当单元格内字符长度超过255会发生截断现象!!!

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\AccessConnectivity Engine\Engines\Excel\TypeGuessRows

64位系统下

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel\ TypeGuessRows

看到论坛里面不断有人提问关于读取excel和导入excel的相关问题。闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家能够给大家带了一定的帮助。另外我们还要注意一些简单的问题1.excel文件只能存储65535行数据,如果你的数据大于65535行,那么就需要将excel分割存放了。2.关于乱码,这主要是字符设置问题。

1.加载Excel(读取excel内容)返回值是一个DataSet

[csharp]view plaincopy//加载ExcelpublicstaticDataSetLoadDataFromExcel(stringfilePath){try{stringstrConn;strConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filePath+";ExtendedProperties='Excel8.0;HDR=False;IMEX=1'";OleDbConnectionOleConn=newOleDbConnection(strConn);OleConn.Open();Stringsql="SELECT*FROM[Sheet1$]";//可是更改Sheet名称,比如sheet2,等等OleDbDataAdapterOleDaExcel=newOleDbDataAdapter(sql,OleConn);DataSetOleDsExcle=newDataSet();OleDaExcel.Fill(OleDsExcle,"Sheet1");OleConn.Close();returnOleDsExcle;}catch(Exceptionerr){MessageBox.Show("数据绑定Excel失败!失败原因:"+err.Message,"提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);returnnull;}}2.写入Excel内容,参数:excelTable是要导入excel的一个table表

[csharp]view plaincopypublicstaticboolSaveDataTableToExcel(System.Data.DataTableexcelTable,stringfilePath){Microsoft.Office.Interop.Excel.applicationapp=newMicrosoft.Office.Interop.Excel.ApplicationClass();try{app.Visible=false;WorkbookwBook=app.Workbooks.Add(true);WorksheetwSheet=wBook.Worksheets[1]asWorksheet;if(excelTable.Rows.Count>0){introw=0;row=excelTable.Rows.Count;intcol=excelTable.Columns.Count;for(inti=0;i<row;i++){for(intj=0;j<col;j++){stringstr=excelTable.Rows[i][j].ToString();wSheet.Cells[i+2,j+1]=str;}}}intsize=excelTable.Columns.Count;for(inti=0;i<size;i++){wSheet.Cells[1,1+i]=excelTable.Columns[i].ColumnName;}//设置禁止弹出保存和覆盖的询问提示框app.DisplayAlerts=false;app.AlertBeforeOverwriting=false;//保存工作簿wBook.Save();//保存excel文件app.Save(filePath);app.SaveWorkspace(filePath);app.Quit();app=null;returntrue;}catch(Exceptionerr){MessageBox.Show("导出Excel出错!错误原因:"+err.Message,"提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);returnfalse;}finally{}}转载的朋友请一定注明出处谢谢!http://blog.csdn.net/gisfarmer/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航