可以采用读取Access的方式读取excel中的数据
首先添加System.Data.OleDb引用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Word = Microsoft.Office.Interop.Word; using System.Data; using System.Data.Common; using System.Data.OleDb; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { try { string file = @"E:\1.xls"; OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ file +";Extended Properties=Excel 8.0"); conn.Open(); Console.WriteLine("连接成功"); OleDbCommand comm = new OleDbCommand("Select * from [Sheet1$] where [NO] is not null",conn); OleDbDataReader re = null; re = comm.ExecuteReader(); if (re != null) { string srt; while (re.Read()) { srt = re["修改日期"].ToString(); Console.WriteLine(srt); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
如果不做修改的话以上程序会出现错误:定义了过多字段
我使用的office2007,excel的总列数是1048576,由于在建立Excel时候,执行了插入操作,会是Excel长度超过1048576
因此可以将上边的Select
* from [Sheet1$] where [NO] is not null
改为:Select * from [Sheet1$A:B] where [NO] is not null
A:B表示读取两列
修改后读取的结果: