Создание таблицы в документе «MSWord» из текста в текстовом файле. - PullRequest
2 голосов
/ 15 января 2012

В следующем файле "E: \ my_folder \ my_future_table.txt" у меня есть этот текст:

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

(обратите внимание, что все слова в каждой строке этого текста разделены вкладками)

Какой сценарий VBS мне нужно использовать для создания файла Word (.doc) с таблицей, созданной на основе этого текста?(В этом примере таблица должна иметь 3 столбца и 4 строки)

1 Ответ

3 голосов
/ 15 января 2012

Примерно так со здоровой степенью доверия Сценаристу

  1. VBS читает тестовый файл (пожалуйста, измените ваш путь), а затем разбивает его по строкеразбить на массив ArrVar
  2. Каждая строка в этом массиве делится еще на VbTab во второй массив, ArrVar2
  3. VBS создает таблицу слов, равную по размерудлина ArrVar и ширина ArrVar2
  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
...