我的源码:
/// <summary>
/// 创建连接
/// </summary>
/// <param name="dataFile"></param>
/// <returns></returns>
public static Boolean Open(String dataFile)
{
Boolean fRet = false;
if (dataFile == null || dataFile == String.Empty)
return false;
if (!System.IO.File.Exists(dataFile))
return false;
/*
1: Excel 8.0 针对EXCEL 2000 或更高版本;Excel 5.0 FOR EXCEL 97
2: HDR == HEADER ROW 表示第一行是否为字段名。Yes为首行字段,No为无首行字段
3: IMEX 表示对同一列中有混合数据类型的列,是统一按字符型处理,还是将个别不同类型的值读为DBNULL。为混合,为不混合
sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" + dataFile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
try
{
m_connExcel = new OleDbConnection(sConnString);
if (m_connExcel != null)
{
//打开链接时老是报错
m_connExcel.Open();
fRet = true;
}
}
catch (Exception e)
{
fRet = false;
Trace.WriteLine("COleDbExcelWrapper.Open: Open excel file failed! " + e.Message);
}
return fRet;
}
请大家帮忙解决一下,谢谢了,
http://www.connectionstrings.com/excel-2007
一起探讨
sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + dataFile + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";
这个可以,我一测试。
你的Excel文件可能不是标准格式(.csv, html等其它兼容格式)。试一下完全用Excel新建一个文件然后再导入。
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + fileName;
string sql = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
da.Fill(table);