由于某些(非常严重的)限制,可以使用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中的所有内容都恢复到正确的表格。我使用该文件将发票从一个地点转移到另一个地点。 –