如题winform中,导入一个Excel并把他保存为dataset时,出现“外部表不是预期的格式”
代码如下:
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + path + ";Extended Properties=\"Excel 8.0;IMEX=1\
OleDbConnection cnnxls = new OleDbConnection(strCon);
cnnxls.Open();
DataTable dtSheetName = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
DataSet ds = new DataSet();
OleDbConnection conn = new OleDbConnection(strCon);
string sql = "select * from ["+strTableNames[0]+"]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, strCon);
myCommand.Fill(ds);-----当执行到这一步时,抛出“外部表不是预期的格式”
代码如下:
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + path + ";Extended Properties=\"Excel 8.0;IMEX=1\
OleDbConnection cnnxls = new OleDbConnection(strCon);
cnnxls.Open();
DataTable dtSheetName = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
DataSet ds = new DataSet();
OleDbConnection conn = new OleDbConnection(strCon);
string sql = "select * from ["+strTableNames[0]+"]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, strCon);
myCommand.Fill(ds);-----当执行到这一步时,抛出“外部表不是预期的格式”
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";"
+ "Extended Properties='Excel 8.0'";
Excel.Application app = null;
string sheetName = string.Empty;
app = new ApplicationClass();
app.Workbooks.Open(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//得到活动的工作目录
Sheets sheets = app.Worksheets; if (sheets != null && sheets.Count > 0)
{
for (int i = 1; i <= sheets.Count; i++)
{
sheetName = ((Excel._Worksheet)sheets.get_Item(i)).Name;//得到活动工作簿名称
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetName + "$]", strCon);
oada.Fill(ds_Card);
}
}我在这里没有发现楼主说的问题!