请问大爷; 打开未知Excel表和Access表时怎么读出表呢? 用Oledb; 打开Excel或Access表时我现在只能读出指定的表 (比如Sheet1什么的). 但现在如果是未知的表, 表的个数也不知道; 而我现在最好能知道有多少个表, 每个表叫什么名字, 这样我就可以把多个表都读出来. 大家知道这个应该是怎么办么? 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似引用MS的Excel DLL之后 可以对Excel进行编程, 进而遍历、操作Sheet 嗯, 确实. 但现在我做的这个东西是要在机器里没有Excel的情况下运行... 所以就得用诸如OleDb之类的东西了. string Path = @"c:\a.xls"; string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn); conn.Open(); System.Data.DataTable table= conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); foreach(System.Data.DataRow drow in table.Rows) { Console.WriteLine(drow["TABLE_NAME"]); } Console.ReadKey(true); 一个更加完整的版本using System;namespace ConsoleApplication11{ class Program { public static void Main() { getExcelFileInfo(@"c:\a.xls"); } private static void getExcelFileInfo(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn); conn.Open(); System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); foreach (System.Data.DataRow drow in table.Rows) { string TableName = drow["Table_Name"].ToString(); Console.WriteLine(TableName+":"); System.Data.DataTable tableColumns = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, new object[] { null, null, TableName ,null}); foreach (System.Data.DataRow drowColumns in tableColumns.Rows) { string ColumnName = drowColumns["Column_Name"].ToString(); Console.WriteLine("\t"+ColumnName); } } Console.ReadKey(true); } }} 用COM编程遍历Sheet列表,直接把他们导出成List,自己确定导出谁 从元数据问题请教 求助高手关于GDI+ .net 在企业中用什么方式连接数据库 [推荐源代码]可以进行文字搜索及替换的TextBox、RichTextBox、ListView和TreeView 安装了vs2005就不能安装sql2000了有什么解决办法。 关于VS2008自带数据库的备份与还原 一段IP地址的进制转换 .net 做的c/s应用程序需要装Freamwork吗 asp.net中遇到的问题 日期型字段在sql该怎么写? 这个怎么实现? indexof 如何实现将ASP页面中的登陆参数传给.net页面,实现单点登陆?
貌似引用MS的Excel DLL之后 可以对Excel进行编程, 进而遍历、操作Sheet
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
conn.Open();
System.Data.DataTable table= conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); foreach(System.Data.DataRow drow in table.Rows)
{
Console.WriteLine(drow["TABLE_NAME"]);
}
Console.ReadKey(true);
namespace ConsoleApplication11
{
class Program
{
public static void Main()
{
getExcelFileInfo(@"c:\a.xls");
}
private static void getExcelFileInfo(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
conn.Open();
System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); foreach (System.Data.DataRow drow in table.Rows)
{
string TableName = drow["Table_Name"].ToString();
Console.WriteLine(TableName+":");
System.Data.DataTable tableColumns = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, new object[] { null, null, TableName ,null});
foreach (System.Data.DataRow drowColumns in tableColumns.Rows)
{
string ColumnName = drowColumns["Column_Name"].ToString();
Console.WriteLine("\t"+ColumnName);
}
}
Console.ReadKey(true);
}
}
}