c#如何读取excel文件
来源:互联网 发布:macbook软件没法删除 编辑:程序博客网 时间:2024/06/05 00:48
使用OLEDB可以对excel文件进行读取,我们只要把该excel文件作为数据源即可。
一 在D盘创建excel文件test.xls:
二 将工作表Sheet1的内容读取到DataSet
C#-Code:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test.xls;"+ "Extended Properties='Excel 8.0'";DataSet ds = new DataSet();OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);oada.Fill(ds);
读取的DataSet为:
从图中可以看出excel文件中的第一行变成了DataSet中的列名,这正是系统的默认设置。
三 如果想把第一行也作为数据行,那我们可以给连接字符串添加一个HDR=No属性
如:
C#-Code:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test.xls;"+ "Extended Properties='Excel 8.0;HDR=No'";DataSet ds = new DataSet();OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);oada.Fill(ds);
结果也许会让你有点想不到:
第一行的第一列和第三列都变成空的了,这是因为系统把第一列识别成了数字,把第三列识别成了日期,而第一行的数据不符合格式的要求,所以就变成空的了。
四 我们还可以把所有列都做为字符串来读取,只要添加属性IMEX=1即可
C#-Code:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test.xls;"+ "Extended Properties='Excel 8.0;HDR=No;IMEX=1'";DataSet ds = new DataSet();OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);oada.Fill(ds);
结果又会如何呢?
是不是再次出乎你的意料,第三行的日期怎么变成数字了,其实excel在转换格式的时候就自动把日期变成数字了,那这个数字是怎么来的呢 ? 如果你把日期改成1900年1月1日,那么你可以看到他的转换结果是1,以此类推,39902是哪一天就明白了吧。
五 也许你并不想读取整个excel的内容
如果只想读取前两列可以用:select * from [Sheet1$A:B]
如果只想读取A1到B2的内容,就用:select * from [Sheet1$A1:B2]
六 如果不知道工作表的名字或名字被人为修改了该怎么办呢?
我们可以通过索引来获取指定工作表的名字,以下方法可以用来获取工作表名称的数组:
C#-Code:
ArrayList al = new ArrayList();string strConn;strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test.xls;"+ "Extended Properties=Excel 8.0;";OleDbConnection conn = new OleDbConnection(strConn);conn.Open();DataTable sheetNames = conn.GetOleDbSchemaTable (OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });conn.Close();foreach (DataRow dr in sheetNames.Rows){ al.Add(dr[2]);}return al;
- c#如何读取excel文件
- C#如何读取Excel文件
- C#如何高效读取EXCEL文件
- 读取excel文件 C#
- c#读取excel文件
- C# 读取Excel文件
- c#读取Excel文件
- C# 读取Excel文件
- C#读取Excel文件
- C#读取EXCEL文件
- C#读取Excel文件
- C# 读取Excel文件
- c#读取excel文件
- C#读取Excel文件
- C#读取EXCEL文件
- C#读取Excel文件
- C# 读取Excel文件
- c#读取excel文件
- Android+PHP+Mysql实现用户反馈功能
- 批量设置jsp页面编码
- Altera Qsys使用心得
- 定位Oops的具体代码行
- C#位运算
- c#如何读取excel文件
- Oracle11gR2 RAC任务角色划分系统权限组,用户和目录详解
- sharepoint 2010 如何在列表中添加功能菜单操作项
- this 关键词
- 17_1_2_1体会函数参数传递
- C++中L和_T()之区别
- Xcode 4.2 加入 iOS5.1 SDK
- Servlet&JSP的那些事儿(二十三)
- 人生之离别感悟