在“MSWord”中创建表格.txt 文件中的文本文档

发布于 2024-12-27 00:01:42 字数 267 浏览 0 评论 0原文

在以下文件“E:\my_folder\my_future_table.txt”中,我有以下文本:(

#   animal  country
1   rabbit  Germany
2   wolf    France
3   koala   USA

请注意该文本每一行中的所有单词均由制表符分隔)

我需要使用什么 VBS 脚本才能创建“Word”文件 (.doc) 以及基于该文本创建的表格? (在此示例中,表格应有 3 列和 4 行)

In the following file "E:\my_folder\my_future_table.txt" I have this text:

#   animal  country
1   rabbit  Germany
2   wolf    France
3   koala   USA

(please note that all the words in each line of that text are separated by tabs)

What VBS script do I need to use in order to create a "Word" file (.doc) with a table created on the basis of that text? (In this example, the table should have 3 columns and 4 rows)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗忘曾经 2025-01-03 00:01:42

有很大程度的信任

  1. 像这样的事情对脚本专家 vbs 读取测试文件(请更改路径),然后按换行符将其拆分为数组 ArrVar
  2. 该数组中的每一行进一步拆分为将 VbTab 插入第二个数组 ArrVar2
  3. vbs 创建一个字表,其大小等于 ArrVar 的长度和 ArrVar2< 的宽度/code>
  4. 每个项目都逐个单元格、逐行写入表格

output

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add()

Set objRange = objDoc.Range()
strFilePath = "c:\temp\my_future_table.txt"

Set objFSO = CreateObject("scripting.filesystemobject")
Set objTF = objFSO.opentextfile(strFilePath)
strAll = objTF.readall
arrVar = Split(strAll, vbNewLine)
numcols = UBound(Split(arrVar(0), vbTab)) + 1

objDoc.Tables.Add objRange, UBound(arrVar) - LBound(arrVar) + 1, numcols
Set objTable = objDoc.Tables(1)

For lngrow = LBound(arrVar) To UBound(arrVar)
    arrVar2 = Split(arrVar(lngrow), vbTab)
    For lngcol = LBound(arrVar2) To UBound(arrVar2)
     objTable.Cell(lngrow + 1, lngcol + 1).Range.Text = arrVar2(lngcol)
    Next
Next

objTF.Close
set objFSO = Nothing

objTable.AutoFormat (9)
objWord.Visible = True

Something like this with a healthy degree of credit to the Scripting Guy

  1. The vbs reads the test file (pls change your path), and then splits it by line break into an array ArrVar
  2. Each line in this array is split further by VbTab into a second array, ArrVar2
  3. The vbs creates a word table equal in size to the length of ArrVar and width of ArrVar2
  4. Each item is written to the table cell by cell, row by row

output

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add()

Set objRange = objDoc.Range()
strFilePath = "c:\temp\my_future_table.txt"

Set objFSO = CreateObject("scripting.filesystemobject")
Set objTF = objFSO.opentextfile(strFilePath)
strAll = objTF.readall
arrVar = Split(strAll, vbNewLine)
numcols = UBound(Split(arrVar(0), vbTab)) + 1

objDoc.Tables.Add objRange, UBound(arrVar) - LBound(arrVar) + 1, numcols
Set objTable = objDoc.Tables(1)

For lngrow = LBound(arrVar) To UBound(arrVar)
    arrVar2 = Split(arrVar(lngrow), vbTab)
    For lngcol = LBound(arrVar2) To UBound(arrVar2)
     objTable.Cell(lngrow + 1, lngcol + 1).Range.Text = arrVar2(lngcol)
    Next
Next

objTF.Close
set objFSO = Nothing

objTable.AutoFormat (9)
objWord.Visible = True
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文