【问题标题】:How to read an Excel file from VBScript?如何从 VBScript 读取 Excel 文件?
【发布时间】:2017-12-28 20:47:59
【问题描述】:

我正在尝试在 VBScript 中读取 Excel 文件,但在 file.Readline 中我收到了奇怪的字符。您知道如何正确获取单元格的值吗?没有 Excel 库。

Dim fso,file
Set fso  = Server.CreateObject("Scripting.FileSystemObject")
Set dict = CreateObject("Scripting.Dictionary")        
Set file = fso.OpenTextFile ("C:\myFile.xlsx",1)
row = 0
Do Until file.AtEndOfStream
    line = file.Readline
    dict.Add row, line
    row = row + 1
Loop
file.Close

【问题讨论】:

标签: vbscript asp-classic xlsx filesystemobject


【解决方案1】:

如果您在 excel 中编写宏(也是 Visual Basic 脚本),则获取单元格值的方法不止一种。 有范围功能 (来自网络的示例:) Worksheets("Sheet1").Range("A5").Value 有单元格函数(来自网络的例子)Cells(1, 1)。

excel 文件 (xslx) 实际上应该是 zip 文件,其中数据是 xml。 我想这就是为什么如果你使用 VB 编译器就无法阅读它的原因。

【讨论】:

  • Excel 宏是用 VBA 而不是 VBScript 编写的。这些语言虽然相似,但也有一些显着差异。
  • VBA 自从我研究它就发生了很大变化,它曾经非常相似
  • excel 对象模型,是相同的 vbscript/vba 或任何其他 COM 程序。虽然连接方式可能不同。
  • 语言非常相似。但就像我说的,有notable differences,而且一直都是。
【解决方案2】:

您很可能需要将页面的编码设置为 UTF-8。简单描述见之前的链接:

Classic ASP text substitution and UTF-8 encoding https://www.w3schools.com/asp/prop_charset.asp

所以它看起来像下面,位于页面顶部附近:

Response.Charset = "UTF-8"

【讨论】:

    【解决方案3】:

    我已经使用扩展名 .CSV 解决了我的问题,因为这允许我以 .txt 格式读取信息,其中每列默认用逗号分隔,因此我的代码可以正常工作。

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 2021-07-17
      • 2016-09-25
      • 2014-02-07
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      相关资源
      最近更新 更多