c#读取excel文件数据

问题描述

stringstrConn="provider=Microsoft.Jet.OLEDB.4.0;DataSource="+path+";ExtendedProperties="Excel8.0;HDR=YES;IMEX=1"";OleDbConnectionconn=newOleDbConnection(strConn);if(conn.State==ConnectionState.Open)conn.Close();if(conn.State==ConnectionState.Closed)conn.Open();DataTablesheetds=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);DataSetsheetList=reportSheetBLL.GetList("report_type_id="+report_type_id);XmlBuilderxmlbuild=newXmlBuilder(sheetList.Tables[0].Rows.Count);stringtableName="";foreach(DataRowrowinsheetds.Rows){if(row["TABLE_NAME"].ToString().Split('$')[1]==""){if(tableName=="")tableName=row["TABLE_NAME"].ToString();elsetableName+=";"+row["TABLE_NAME"];}}if(tableName!=""){for(intt=0;t<tableName.Split(';').Length;t++){DataSetrelationExcelCellDs=excelBll.getRelationExcelList("Relation_Type_Id="+relation_type_id+"andExcel_Sheet="+(t+1));if(relationExcelCellDs!=null&&relationExcelCellDs.Tables[0].Rows.Count>0){stringstrSheetTableName=tableName.Split(';')[t].ToString();stringsql="SELECT*FROM["+strSheetTableName+"]";OleDbDataAdapterMySource=newOleDbDataAdapter(sql,conn);DataSetexcelds=newDataSet();MySource.Fill(excelds);conn.Close();}}}以上代码在运行到:MySource.Fill(excelds);时就会出错:定义了过多的字段一开始我认为是excel单元格保护的问题,去掉保护,没事了。可当excel有背景颜色的时候也会出现同样的问题。现在是时不时的就会出现,请问这是什么原因造成的,有什么好的办法解决一下吗?

解决方案

解决方案二:
up
解决方案三:
可以用string.Format("SELECT*FROM[{0}${1}]",sheetName,sheetRange);的SQL来限定读取的table可以看下我之前写的一个oledb读excel的类,写了很久了,很多我自己都不记得了http://user.qzone.qq.com/3183601/blog/1
解决方案四:
mark
解决方案五:
读取excelstringopnFileName="D:\dddd.xls";if(File.Exists(opnFileName)==false){return;}stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+opnFileName+";ExtendedProperties="Excel8.0;HDR=YES;IMEX=1"";OleDbConnectionconn=newOleDbConnection(strConn);stringstrExcel="";OleDbDataAdaptermyCommand=null;DataSetds=newDataSet();strExcel="select*from[sheet1$]";try{conn.Open();myCommand=newOleDbDataAdapter(strExcel,strConn);myCommand.Fill(ds,"dtSource");}catch(Exceptionex){MessageBox.Show("导入出错:"+ex,"错误信息");}finally{conn.Close();conn.Dispose();}

解决方案六:
up
解决方案七:
谢谢大家的答案,可我的做法和你们的是一样的,为什么在单元格受保护或是页面有背景色的时候就会出现:定义了过多的字段我想知道为什么会出现这个错误
解决方案八:
有没有不用OLEDB读取excel的方法,因为.netcompactFramework不支持OLEDB。

时间: 2025-01-01 21:57:19

c#读取excel文件数据的相关文章

直接读取Excel文件数据

前言 由于种种需要直接进行读取Excel文件数据,然而在网上Search多次也没有找到好的方法, 一般就通过ODBC或OLE方式进行读取,但这两种方法都具有局限性...(我相信大家都很清楚). 怎么办呢?没办法了,只好选择最艰难的路了--分析Excel文件格式. 介绍 MS Excel是众所周知的电子表格处理软件.Excel文件格式是特定的BIFF(Binary Interchange File Format),BIFF里存储了很多记录,第条记录包括记录头和记录体.记录头是4byte,前两位指定

请教读取Excel文件数据问题

问题描述 今日我尝试来读取Excel文件,代码如下,Excel文件中的数据是我的意图是读取第一条数据"1a",可是最后结果却是第二条"2b"不知怎样才能从第一条数据读起?OleDbConnectionmyconn=newOleDbConnection();OleDbCommandmycmd=newOleDbCommand();stringstrConnString="Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:Dat

ASP.NET中上传并读取Excel文件数据

asp.net|excel|上传|数据 在CSDN中,经常有人问如何打开Excel数据库文件.本文通过一个简单的例子,实现读取Excel数据文件.首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. <INPUT id="File1" type="file" name="File1" runat="server"><asp:Button id="B

ASP.NET中上传并读取Excel文件数据示例

  如何打开Excel数据库文件,想必有很多朋友都不清楚吧,下面通过一个简单的例子,实现读取Excel数据文件       在CSDN中,经常有人问如何打开Excel数据库文件.本文通过一个简单的例子,实现读取Excel数据文件. 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. 代码如下: <INPUT id="File1" type="file" name="File1" runa

ASP.NET中上传并读取Excel文件数据示例_实用技巧

在CSDN中,经常有人问如何打开Excel数据库文件.本文通过一个简单的例子,实现读取Excel数据文件. 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. 复制代码 代码如下: <INPUT id="File1" type="file" name="File1" runat="server"> <asp:Button id="Button1&

如何最高效的读取Excel文件?

问题描述 需要读取一excel文件内容进行处理,此文件共约700条数据,(每条数据约12项).每隔三分钟会有一第三方程序向此文件写入一条数据.此第三方程序不可进行二次开发,且具有最高权限,就是说此第三方程序写入数据时,其它程序不得对excel文件进行占用.请问此问题如何解决.我的思路是尽量快速读取excel文件数据然后关闭excel文件.把读取的数据生成dataset在计算机内存中处理而不在打开excel文件时一边读数一边处理.那么哪位高人可以给我一个读取快速excel文件数据并生成datase

可以读取EXCEL文件的js代码第1/2页_javascript技巧

首页给个有中文说明的例子,下面的例子很多大家可以多测试. 复制代码 代码如下: <script language="javascript" type="text/javascript"><!-- function readExcel() { var excelApp; var excelWorkBook; var excelSheet; try{ excelApp = new ActiveXObject("Excel.Applicatio

在C#.net 中读取EXCEL文件的数据

读取EXCEL表数据的方法其实跟ACCESS差不多.EXCEL只是一个不同形式的库而已. 在.cs文件里面首先引用OLEDB:using System.Data.OleDb: 我们访问access数据库的方法是:"Provider=Microsoft.jet.oledb.4.0;data source=FilePath.mdb;" 访问EXCEL的其实差不多,只是驱动不一样而已:"Provider=Microsoft.Jet.OLEDB.4.0;" + "

Java数据导入功能之读取Excel文件实例_java

在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java读取excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 (1)每个单元格的位置认为是由一个二维坐标(i,j)给定,其中i表示列,j表示