在做EXCEL匯入時,常因Sheet Name 使用者會自行更名,造成在程式編寫時會出現檔案名稱不存在的問題,如果限定使用者固定只能使用單一的Sheet Name又不是很人性化。
所以在網路上找了一下解決方法
解法如下
以 C# 取得 excel 檔中各個 sheet name 的方法如下:
1. 建立並打開 OleDBConnection
2. 以 OleDBConneciton.GetOleDbSchemaTable 取得 data table
3. 以 DataRow["TABLE_NAME"] 取出 sheet name
4. 關閉並釋放 OleDBConnection
範例程式如下
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Text;
namespace ExcelSheet
{
class Program
{
static void Main(string[] args)
{
OleDbConnection objConn = null;
DataTable dataTable = null;
try
{
// connection string
String connString =
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ "D:\\Excel.xlsx" + ";Extended Properties=Excel 12.0;";
// Create and Open OleDbConnection
objConn = new OleDbConnection(connString);
objConn.Open();
// Get the data table
dataTable =
objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
if(dataTable == null)
{
Console.WriteLine("no table");
}
foreach(DataRow row in dataTable.Rows)
{
// Write the sheet name to the screen
//就是在這取得Sheet Name
Console.WriteLine(row["TABLE_NAME"].ToString());
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
// Close and dispose the connection
if(objConn != null)
{
objConn.Close();
objConn.Dispose();
}
if(dataTable != null)
{
dataTable.Dispose();
}
}
}
}
}
- Aug 08 Sat 2009 02:49
如何取得 Excel 中的 Sheet Name
全站熱搜
留言列表
發表留言