Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Появление лишних символов при записи в CSV файл / 3 сообщений из 3, страница 1 из 1
14.11.2015, 21:03
    #39103615
AlexSheff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Появление лишних символов при записи в CSV файл
Добрый день!

Для работы необходимо написать скрипт, читающий только таблицы из Word-документа и записывающий их значения в csv-файл.
Поскольку VBScript использую в первый раз, то с помощью гугления удалось написать почти работающую версию. Однако, при проверке в результирующем файле были обнаружены лишние символы перехода на новую строку или в Блокноте они отображаются как []. Как можно это исправить? Понимаю, что наверняка вопрос решается тривиально, но мне не удалось исправить.

Заранее благодарю за помощь.

Прилагаю код скрипта:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Option Explicit

Dim objWord, objFSO, objCSV
Dim fileName, folderPath, filePath, csvFilePath
Dim currentDocument
Dim numberOfTables
Dim i
Dim j
Dim tbl

folderPath = WScript.Arguments.Item(0)
fileName = WScript.Arguments.Item(1)
filePath = folderPath & fileName
csvFilePath = filePath & ".csv"

Set objWord = CreateObject("Word.Application") 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objCSV = objFSO.openTextFile(csvFilePath, 2, true)

objWord.DisplayAlerts = 0
objWord.Documents.Open filePath, false, true
Set currentDocument = objWord.Documents(1)

numberOfTables = currentDocument.tables.count

If numberOfTables = 0 Then
WScript.Echo "There are no tables " & vbCRLF
Else
For Each tbl In currentDocument.Range.Tables
  For i = 1 To tbl.Rows.Count
    For j = 1 To tbl.Columns.Count
      objCSV.Write tbl.Cell(i, j).range.text
	  If j < tbl.Columns.Count Then
		objCSV.Write ","
	  End If
    Next
	objCSV.Writeline 
  Next
  objCSV.Writeline 
  objCSV.Writeline 
Next
End If

currentDocument.Close
Set currentDocument = Nothing

objWord.Quit
Set objWord = Nothing
...
Рейтинг: 0 / 0
14.11.2015, 21:27
    #39103622
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Появление лишних символов при записи в CSV файл
AlexSheff,
в тексте ячейки, в конце содержатся два невидимых символа, так что переделайте строку objCSV.Write tbl.Cell(i, j).range.text так:
Код: vbnet
1.
2.
3.
4.
Dim s
'...
s = tbl.Cell(i, j).range.text
objCSV.Write Left(s, Len(s) - 2)
...
Рейтинг: 0 / 0
14.11.2015, 21:33
    #39103623
AlexSheff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Появление лишних символов при записи в CSV файл
Казанский,
спасибо большое, теперь все работает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Появление лишних символов при записи в CSV файл / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]