由於某些(非常嚴重的)限制,可以使用Jet(即Access數據庫引擎,它的一個老化版本是標準Windows組件)至少讀取XLS文件。對於侷限在這裏看到:
http://support.microsoft.com/kb/257819/en-gb
作爲一個例子...
Function ReadCell(XLSFileName As String, SheetName As String, CellName As String)
Dim DB As DAO.Database, RS As DAO.Recordset
Set DB = DBEngine.OpenDatabase(XLSFileName, False, True, "Excel 8.0;HDR=No;")
Set RS = DB.OpenRecordset("SELECT * FROM [" + SheetName + "$" + CellName + ":" + CellName "]")
ReadCell = RS(0)
RS.Close
DB.Close
End Function
Sub Foo
MsgBox ReadCell("C:\Users\ExeBat\Documents\Test.xls", "Summary Details", "C5")
End Sub
我也從我的軟件出口相同的文件(即我需要進口),所以我也可以出口它作爲csv或類似的東西。 –
回覆:「我的猜測是MS默認加密/模糊您的標準xls/xlsx文件」 - 不,.xlsx文件僅使用標準ZIP壓縮進行壓縮。將Excel工作表保存爲.xlsx,將其重命名爲.zip,然後提取內容,您將看到所有OpenXML的優點。 (即便如此,自己解析這些XML文件將會......挑戰......至少可以說!) –
但是,如何像Excel一樣操作代碼中的CSV?這非常實用,因爲我可以使用填充單元格A1-DocumentID,A2-Date,A3-INVNumber,B2-CreatedBy ...和範圍A10-F10填寫發票項目。我以相同的方式重新導入文件,並將xls中的所有內容都恢復到正確的表格。我使用該文件將發票從一個地點轉移到另一個地點。 –