各位,我用C#连接EXCEL,读取其中的表格数据到Datasdet中,调试时发现到达Dataset中的表中的所有数值项全部丢失为空,文本字符项均正常,未出现丢失,请问这是怎么回事呢?我该如何解决。我想这个问题应该不会很难吧,是不是我哪里少了什么?
public static void import()
{
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Extended Properties=\"Excel 8.0;HDR = No;IMEX = 1\";" +
"data source=" + HttpContext.Current.Server.MapPath("~/upload/A02.xls");
// 查询语句
string sql_F = "SELECT * FROM [{0}]";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(String.Format(sql_F, "采集表$"), connStr);//将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
try
{
da.Fill(ds); // 填充DataSet }
catch (Exception ex)
{
Common.Util.writeLog(ex.Message);
}
Model.PartInfo newpart = new Model.PartInfo();
DataTable dt = new DataTable();
dt =ds.Tables[0];
public static void import()
{
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Extended Properties=\"Excel 8.0;HDR = No;IMEX = 1\";" +
"data source=" + HttpContext.Current.Server.MapPath("~/upload/A02.xls");
// 查询语句
string sql_F = "SELECT * FROM [{0}]";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(String.Format(sql_F, "采集表$"), connStr);//将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
try
{
da.Fill(ds); // 填充DataSet }
catch (Exception ex)
{
Common.Util.writeLog(ex.Message);
}
Model.PartInfo newpart = new Model.PartInfo();
DataTable dt = new DataTable();
dt =ds.Tables[0];
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
using(OleDbConnection OleConn = new OleDbConnection(strConn))
{
OleConn.Open();
String sql = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet ds= new DataSet();
OleDaExcel.Fill(ds);
OleConn.Close();
}
http://download.csdn.net/source/3034170
能够遍历excel工作表,基本功能都全了,自己参考一下吧。
我的方法可能不是最好的,但测试较稳定呵呵
下载我在3楼给你提供的小程序,看看能够读你的EXCEL表。自己研究下吧。