'Sheet1$' 不是一个有效名称的解决方法
2012-05-25 14:49
555 查看
'sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
那么怎样才能获得Excel中各个sheet的名称呢?这样就能动态的选中返回那个sheet的数据,即使用户更改了名称也不怕,完全可以把所有sheet的名称列出来供用户选择:
那么下面就把解决问题的代码列出来,主要用到了
![](http://www.cqzol.com/programming/UploadFiles_7546/200812/2008122618470563.gif)
OleDbConnection.GetOleDbSchemaTable()方法
public static DataSet ExcelDs(string filenameurl)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"});
//包含excel中表名的字符串数组
string[] strTableNames=new string[dtSheetName.Rows.Count];
for(int k=0;k<dtSheetName.Rows.Count;k++)
{
strTableNames[k]=dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [" + strTableNames[0] + "]", conn);
DataSet ds = new DataSet(); odda.Fill(ds);
conn.Close();
conn.Dispose();
return ds;
}
那么怎样才能获得Excel中各个sheet的名称呢?这样就能动态的选中返回那个sheet的数据,即使用户更改了名称也不怕,完全可以把所有sheet的名称列出来供用户选择:
那么下面就把解决问题的代码列出来,主要用到了
![](http://www.cqzol.com/programming/UploadFiles_7546/200812/2008122618470563.gif)
OleDbConnection.GetOleDbSchemaTable()方法
public static DataSet ExcelDs(string filenameurl)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"});
//包含excel中表名的字符串数组
string[] strTableNames=new string[dtSheetName.Rows.Count];
for(int k=0;k<dtSheetName.Rows.Count;k++)
{
strTableNames[k]=dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [" + strTableNames[0] + "]", conn);
DataSet ds = new DataSet(); odda.Fill(ds);
conn.Close();
conn.Dispose();
return ds;
}
相关文章推荐
- 'sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
- Foxpro数据库连接错误解决方法--【VFP DBF文件不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器】
- documents或favorites不是一个有效的短文件名 解决方法
- 'wmic' 不是内部或外部命令,也不是可运行的程序 解决方法
- 'JAVAC' 不是内部或外部命令解决方法
- <错误135.'documents'不是一个有效的短文件名>解决方法
- 获取表格的方法:sheet1$不是一个有效的名称,请确保它不包括无效的字符或标点,或字符不要太长
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- eWebEditor 请选择一个有效的文件的解决方法
- Xp系统安装或运行软件时提示“EXE不是有效Win32应用程序”的故障原因及解决方法
- "Permission denied: '/usr/local/man/man1/nosetests.1'"解决方法
- java中目前为解决大数据处理的一个有效的开发方法——集群开发技术
- "创建控件时出错/lm/w3svc/... 不是一个有效的iis应用程序" 的解决办法
- C#编译时出现不是win32有效的资源文件的解决方法
- 关于“Assemblies Should Have Valid Strong Names 程序集应该拥有一个有效的强名称”的分析与解决
- struts控件取文件名乱码。一个不是很好的解决方法。
- "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误"的解决方法
- 关于asp错误'C:\inetpub\wwwroot\bg\#databases#\seablog.mdb'不是一个有效的路径。
- cocos2d-x-3.12 打包android apk时 怎么修改已经配置好的setup.py参数 和解决 XX不是一个有效的 Android 目标平台 错误
- "创建控件时出错/lm/w3svc/... 不是一个有效的iis应用程序" 的解决办法