Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 7113|回復(fù): 4
打印 上一主題 下一主題

[模塊/函數(shù)] 【Access小品】不打開(kāi)Excel讀取標(biāo)簽名

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2014-11-27 09:07:07 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 todaynew 于 2014-11-27 10:27 編輯

  我們用SQL或ADO操作Excel表時(shí),需要指定sheet名稱。一般情況下,我們對(duì)sheet的名稱是已知的。但是,有時(shí)候標(biāo)簽名稱不確定,或者標(biāo)簽名稱是按照某種編碼方式產(chǎn)生的。這種情況下,得到標(biāo)簽名稱就十分必要了。我們當(dāng)然可以通過(guò)打開(kāi)Excel表對(duì)象,然后遍歷sheets來(lái)得到標(biāo)簽名稱,但這種處理效率較低,也很麻煩。那么是否可以在不打開(kāi)Excel表的情況下,得到標(biāo)簽名稱呢?答案是肯定的。

  由于我們可以將Excel表作為數(shù)據(jù)源進(jìn)行連接,因此我們就可以通過(guò)這個(gè)連接的某些屬性得到Excel表所包含的標(biāo)簽(相當(dāng)于table)。在這個(gè)處理中我們需要引用或創(chuàng)建ADOX.Catalog對(duì)象,這個(gè)對(duì)象包含了tables屬性,由此得到table以及它的名稱。


Function GetSheetName(filepath As String, n As Integer) As String
    '功能:返回標(biāo)簽名稱
    '引用:Mocrosoft ADO Ext 2.8 for DDL and Securty
    '參數(shù):filepath--Excel文件名,n--標(biāo)簽序號(hào)(從1開(kāi)始)
    Dim conn As New ADODB.Connection
    Dim cat As New ADOX.Catalog
    Dim sheetname As String
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath & ";Extended Properties=Excel 8.0;"
    conn.Open
    Set cat.ActiveConnection = conn
    sheetname = cat.Tables(n - 1).Name

    conn.Close
    Set cat = Nothing
    Set cnn = Nothing
    GetSheetName = sheetname
End Function

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2014-11-27 09:24:53 | 只看該作者
ADOX啊,好方法

點(diǎn)擊這里給我發(fā)消息

3#
發(fā)表于 2014-11-27 09:33:17 | 只看該作者
不明覺(jué)厲,贊一個(gè)

點(diǎn)擊這里給我發(fā)消息

4#
發(fā)表于 2014-11-27 11:40:04 | 只看該作者
只有用心吸收..

點(diǎn)擊這里給我發(fā)消息

5#
發(fā)表于 2014-11-27 16:56:38 | 只看該作者
挺不錯(cuò)的方法
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-16 18:15 , Processed in 0.100786 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表