Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2009, 21:13   #1
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию Таблицы из Word (doc) в (txt)

Добрый день.
Подскажите пожалуйста, есть ли какая-нибудь возможность сохранять документ содержащий таблицы из doc в txt так, чтобы таблицы сохранялись?

Пока что мне предложили использовать псевдографику, знаки - и | .
Тире и вертикальная палочка.
Можно каким-то образом сделать макрос, который будет заменять границы ячеек таблиц на эти знаки?
shadowbeast вне форума Ответить с цитированием
Старый 11.02.2009, 22:04   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Тебе нужно графически сохранить сетку таблицы? Зачем?
Просто в текст преобразовать, это можно, но без графики.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 11.02.2009 в 22:09.
viter.alex вне форума Ответить с цитированием
Старый 11.02.2009, 22:09   #3
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Приказ начальства. Чтобы табличные данные сохранялись в таблицах. Сетка важна.
Я не знаю как сделать преобразование, когда есть огромное количество таблиц и всё это надо перегнать в текстовый формат, сохранив таблицы.
shadowbeast вне форума Ответить с цитированием
Старый 11.02.2009, 22:13   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
Приказ начальства…
Ну это не обсуждается

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
…Я не знаю как сделать преобразование, когда есть огромное количество таблиц и всё это надо перегнать в текстовый формат, сохранив таблицы.
Дай хоть таблицы посмотреть, а там решим.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 12.02.2009, 05:49   #5
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию Пример таблицы

Вот примерно такую надо сконвертировать. Под рукой основного не было, нашёл похожую.

Разное количество ячеек в строках бывает. Это как-то надо без разбивки таблиц конвертить. Вот и думал, что какую-то замену табличных границ на псевдографику сделать.
Вложения
Тип файла: doc Таблица-пример.doc (81.0 Кб, 47 просмотров)
shadowbeast вне форума Ответить с цитированием
Старый 12.02.2009, 09:26   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
Вот примерно такую надо сконвертировать. Под рукой основного не было, нашёл похожую.

Разное количество ячеек в строках бывает. Это как-то надо без разбивки таблиц конвертить. Вот и думал, что какую-то замену табличных границ на псевдографику сделать.
В таком виде ее конвертировать невозможно!. Поясню: строка 16 «Социальная поддержка безработных граждан», почему стоят переходы на другую строку, вместо того, чтобы все это сделать в разных строках? Как это можно проанализировать? Тем более, что эти переходы стоят и в других ячейках? Как различить что этот перевод строки в ячейке служит условным разбиением на строки? Одним словом, пока все, что должно быть в одной строке, не будет там, сделать не получится.
Хотя я рад ошибаться

Есть, конечно, вариант преобразовать в Html, а затем из него сохранять в текст, мне кажется, что такие конвертеры есть. Google тебе в помощь.

Добавлено позже
Нужно, чтобы таблица выглядела, хотя бы так, но и это слишком сложно для преобразования. Нужно искать другой путь. Зачем сохранять в txt? Неужели нет другого способа представить эту информацию? Или какая-то жутко древняя программуля, времен DOS, которая понимает только txt, да еще и в своей кодировке, что тоже добавляет проблем?
Помнится мне, были текстовые редакторы под DOS: «Лексикон», «Слово и дело» и пр., одновременно с Word. Может они могли это делать?
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 15.04.2009 в 14:44.
viter.alex вне форума Ответить с цитированием
Старый 12.02.2009, 20:02   #7
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Есть прога для которой это всё готовится. Она понимает либо в тхт, либо в док. Но таблицы, где разное количество ячеек в строке, она жрать не любит. Виснет намертво.
Приходится таблицы разбивать по строкам с разным количеством ячеек - а когда таблиц много, это вообще кошмар. Прессует настолько, что хочется всё автоматизировать.

Какие-то умельцы вроде бы где-то разработали конвертер, который такие таблицы успешно перегоняет в тхт. Но все молчат и никто не признаётся.

Мне предложили пользоваться Делфи, а я рассчитывал сначала на макрос какой-нибудь. Видимо придётся Делфи учить)
shadowbeast вне форума Ответить с цитированием
Старый 12.02.2009, 20:09   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А Delphi ты думаешь как будет их перегонять? Тоже через объектную модель Word. Смысла в этом я не вижу.
А что это за история с разбиением строк? Может это можно автоматизировать?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 12.02.2009, 20:53   #9
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Ну есть таблица к примеру. В первой строке - 5 ячеек. во второй - 15 ячеек. В третьей - 10 ячеек.
Прога в которую все данные надо загружать, этой таблицей подавится. Не обработает.

Я написал макрос.
Курсор ставится в любую ячейку второй строки. По нажатию комбинации клавиш, происходят следующие дествия: Выбирается пункт меню Таблица-Разбить таблицы. Вторая строка отделяется от первой.

То есть вместо мышиной возни, работает хоткей.

Мне приходится проглядывать каждую строчку таблицы, чтобы не пропустить строки где различаются количества ячеек.

Я думал о возможности сравнения. Если в строке большее или меньшее количество ячеек чем в предыдущей - её надо разбить. Но не знаю, как это реализовать. И наверное это бы было прекрасно применимо к огромному документу..

Последний раз редактировалось shadowbeast; 12.02.2009 в 20:59.
shadowbeast вне форума Ответить с цитированием
Старый 12.02.2009, 22:23   #10
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
…Я думал о возможности сравнения. Если в строке большее или меньшее количество ячеек чем в предыдущей - её надо разбить. Но не знаю, как это реализовать. И наверное это бы было прекрасно применимо к огромному документу..
Вот что значит правильно сформулировать задачу! Разбить таблицы — это не в текст их конвертить.
Вот что получилось быстро, если надо можно подправить
Код:
Sub splitTables()
  Dim oTbl As Table, _
      oRow As Row, _
      iTblCountBefore As Integer, _
      iTblCountAfter As Integer, _
      j As Integer
  Do
   iTblCountBefore = ThisDocument.Tables.Count 'Количество таблиц до разбиения
   For Each oTbl In ThisDocument.Tables
      For j = 2 To oTbl.Rows.Count
        Set oRow = oTbl.Rows(j)
        'если количество ячеек в текущей строке не равно количеству ячеек в предыдущей, то
        'таблицу разбиваем'
        If oRow.Cells.Count <> oRow.Previous.Cells.Count Then oTbl.Split oRow
        Exit For
      Next
    Next oTbl
    iTblCountAfter = ThisDocument.Tables.Count 'количество таблиц после
  Loop Until iTblCountAfter = iTblCountBefore
End Sub
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.02.2009 в 10:27.
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
преобразовать doc в txt не через OLE furstenberg Компоненты Delphi 0 12.11.2008 14:44
Открытие .doc или .docx в MS Word MADDAN Microsoft Office Word 4 16.09.2008 21:55
Открыть файл *.doc без установленого Word Pashekka Софт 6 15.09.2007 08:25