0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
1

Перенести данные для удобной обработки из выгрузки в формате rtf

15.03.2012, 22:33. Показов 4140. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребятки, помогите пожалуйста.
Необходима ваша помощь.
Есть выгрузка (скорее всего из "банк-клиент"). Выгрузка в формате rtf, НО самое проблемное то, что данные оттуда не возможно перенести в excel для дальнейшей обработки. Почему-то каждое значение (слово) находится в своей ячейке и при копировании в другие документы сбивается все форматирование.
Ребятки, помогите выйти из сложившейся ситуации.
Что можно сделать для того, чтобы с данными можно было работать ??
Прикладываю два листа с данными, на самом деле в документе более 100 листов.
Вложения
Тип файла: rar Выписка по счету.rar (18.6 Кб, 43 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2012, 22:33
Ответы с готовыми решениями:

Перенести в таблицу динамические данные выгрузки по 2 параметрам
Есть отчетная таблица в которую необходимо выполнить перенос данные выгрузки из Project Server....

Программы для удобной обработки орф/грам ошибок
Добрый день! Знаете ли вы какие-нибудь удобные программы для проверки орфограф., грамматич.,...

Создание обработки для выгрузки данных в dbf: Ошибка создания файла
Всем добрый день! Пытаюсь написать обработку для выгрузки данных в dbf, нашла разные примеры. В...

Пиксели. Сгенерировать данные, которые отвечают условию задачи, и вывести их в текстовом файле в форме, удобной для просмотра.
Общее условие:Згенерировать даные, которые отвечают условию задачи, и вывести их в текстовом файле...

21
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
15.03.2012, 23:55 2
нечто читаемое
Вложения
Тип файла: zip выписка00.zip (7.6 Кб, 26 просмотров)
0
5965 / 3169 / 706
Регистрация: 23.11.2010
Сообщений: 10,577
16.03.2012, 08:41 3
У меня получилось так, но дело довольно хлопотное.
Надо удалить разрывы строк обязательно. Я сначала заменила знаки абзаца на табуляцию, Затем выделить текст без шапки таблицы и преобразовать в таблицу 9 столбцов (в примере Столбец Кредит пустой, а так надо было бы 10 столбцов)
Затем эту таблицу надо перенести в ексел и сцепить столбцы с реквизитами.

Может стоит сразу перевести в ексел, а затем =ТРАНСП() ?
Вложения
Тип файла: doc Выписка.doc (31.0 Кб, 16 просмотров)
1
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
16.03.2012, 09:50 4
В екселе

-для пробы нужен документ
---кредит --не пустой
---дебит --пустой
Вложения
Тип файла: zip RTF0940.zip (5.7 Кб, 14 просмотров)
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
16.03.2012, 10:52 5
какие еще поля могут быть не заполнены
Вложения
Тип файла: zip rtf002.zip (5.8 Кб, 18 просмотров)
1
1300 / 402 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
16.03.2012, 16:47 6
Евгеша_и_Пух,
  1. переведите документ в PDF (вроде можно в самом Word 2007 переводить в PDF);
  2. переведите PDF-файл обратно в документ с помощью ABBYY FineReader (платная программа).
Только при переводе из PDF-файл в документ Word - могут быть данные искажены, поэтому нужно проверять полностью весь документ.
1
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
16.03.2012, 21:06  [ТС] 7
Цитата Сообщение от Busine2012 Посмотреть сообщение
Евгеша_и_Пух,
  1. переведите документ в PDF (вроде можно в самом Word 2007 переводить в PDF);
  2. переведите PDF-файл обратно в документ с помощью ABBYY FineReader (платная программа).
Только при переводе из PDF-файл в документ Word - могут быть данные искажены, поэтому нужно проверять полностью весь документ.

Ребятки, спасибо всем!
Я попробовал все предложенные вами варианты, более удобным для меня является вариант от Busine.
Хотя ABBYY FineReader стоит не на каждом компе, но на рабочем я спокойно могу использовать данный способ для реанимации данных.
Большое спасибо !!
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
16.03.2012, 21:55 8
Цитата Сообщение от shanemac51 Посмотреть сообщение
какие еще поля могут быть не заполнены
вы хоть смотрели этот вариант, чистый ексель без PDF ------rtf002.zip
все в клеточках без распознавания

-в ворде пускается макрос
-получаем НТМ
-который легко открывается и вордом и екселем(в нормальном формате)
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
17.03.2012, 09:36  [ТС] 9
Цитата Сообщение от shanemac51 Посмотреть сообщение

-в ворде пускается макрос ...

Добрый день!
Shanemac51, конечно я просмотрел каждый вариант, предложенный всеми, кто участвовал в решении моей проблемы.
Однако более простым и понятным оказался тот вариант, о котором я упомянул выше.
К сожалению я ОЧЕНЬ плохо разбираюсь в вордовских макросах. Мне больше приходится работать в екселе.
В вашем варианте только результат, а мне необходимо решение.
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
17.03.2012, 10:15 10
прилагаю вордовский документ с макросом

--ругнется на плохой ексель
--игнорировать и продолжить
--сохранить как ексель-документ нужной версии
Вложения
Тип файла: zip Выписка120317.zip (19.9 Кб, 32 просмотров)
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
17.03.2012, 14:52  [ТС] 11
Цитата Сообщение от shanemac51 Посмотреть сообщение
прилагаю вордовский документ с макросом

--ругнется на плохой ексель
--игнорировать и продолжить
--сохранить как ексель-документ нужной версии
Shanemac, макрос почему-то ругается на эту строку:

Open "c:\rtf0317.doc" For Output As #1

я ее заменил на:
Open "C:\Users\Евгеша\Desktop\Выписка120317.doc" For Output As #1

однако он снова ругается ((

Добавлено через 4 минуты
Все, получилось, в таком виде работает, начинаю тестировать !!!

Open "C:\Users\Евгеша\Desktop\rtf0317.doc" For Output As #1

Добавлено через 1 минуту
Добавлено через 3 часа 32 минуты
Цитата Сообщение от shanemac51 Посмотреть сообщение
прилагаю вордовский документ с макросом

--ругнется на плохой ексель
--игнорировать и продолжить
--сохранить как ексель-документ нужной версии
shanemac51, в ходе тестирования выявил, что "кредит" попадает в колонку "дебет" и все суммы сумируются в одном столбце.
В приложенном мною файле, к сожалению, не оказалось строк с суммами по "кредиту", на самом деле они есть.

Так же, для обработки данных на 135 листах, макрос затратил 18 минут (но это не так уж важно по сравнению с первой проблемой.
Пожалуйста, помогите устранить проблему.
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
17.03.2012, 15:45 12
shanemac51, в ходе тестирования выявил, что "кредит" попадает в колонку "дебет" и все суммы сумируются в одном столбце.
В приложенном мною файле, к сожалению, не оказалось строк с суммами по "кредиту", на самом деле они есть.
приложите лист, где есть кредит и дебит
желательно на 1-м листе
превосходно, если для 1-й позиции

я об этом уже просила
-для пробы нужен документ
---кредит --не пустой
---дебит --пусто
1
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
17.03.2012, 16:04  [ТС] 13
Цитата Сообщение от shanemac51 Посмотреть сообщение
приложите лист, где есть кредит и дебит
желательно на 1-м листе
превосходно, если для 1-й позиции

я об этом уже просила
shanemac51, спасибо! Просто вначале я не понял сути вашего сообщения. Прикладываю пример на 5 листах, форматирование очень сложное, старался вырезать самое необходимое.
Вложения
Тип файла: rar Выписка по счету 333.rar (28.2 Кб, 20 просмотров)
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
17.03.2012, 20:31 14
Код
доработка макроса для ворда

Sub WR120315_1919()
Dim SH As ShapeRange
Dim SHET, j1, j2, j3, j4, j4a, JV1, JV2, s1, s1a, j161
Dim sbold As String
j2 = Word.ActiveDocument.Frames.Count
Debug.Print j2
j1 = 0
j3 = 0
Open "c:\rtf0317.a2" For Output As #1
Print #1, "<HTML>"
Print #1, "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1251"" />"
Print #1, "<style>"
Print #1, "p{font-family:arial;font-size:9pt;}"

Print #1, "th{font-family:arial;font-size:7pt;}"
Print #1, "th.f28{font-family:arial;font-size:28pt;}"

Print #1, "td{font-family:arial;font-size:8pt;}"
Print #1, "td.f1{font-family:arial;font-size:1pt;}"


Print #1, "h1{font-family:arial;font-size:14pt;}"
Print #1, "h2{font-family:arial;font-size:12pt;}"
Print #1, "h3{font-family:arial;font-size:10pt;}"

Print #1, "b{color:red;}"
Print #1, "i{color:blue;}"
Print #1, "</style>"
Print #1, "<table border=1 width=100% cellspacing=0 cellpadding=0>"
Print #1, "<TR>"
Print #1, "<TD width=3%>F1"
Print #1, "<TD width=10%>F2"
Print #1, "<TD width=5%>F3"
Print #1, "<TD width=8%>F4"
Print #1, "<TD width=12%>F5"
Print #1, "<TD width=12%>F6"
Print #1, "<TD width=10%>F7"
Print #1, "<TD width=11%>F8"
Print #1, "<TD width=12%>F9"
Print #1, "<TD width=12%>F10"
Print #1, "<TD width=2%>F11"
Print #1, "<TD width=12%>F12"



'Print #1, "<TR><TD>c<TD>2<TD>3<TD>c<TD>c<TD>c"

JV2 = 11110
j3 = 0
Do While j1 < j2
j1 = j1 + 1
s1 = "" & Word.ActiveDocument.Frames(j1).Range.Text
JV1 = Word.ActiveDocument.Frames(j1).HorizontalPosition
If JV1 < JV2 Then
j3 = j3 + 1
Print #1, "<tr><td>"; j3;
j4 = 0
j4a = 0
End If
JV2 = JV1
j4 = j4 + 1
j4a = j4a + 1
Debug.Print j4, j4a, JV1, s1
If JV1 = 42 And s1 Like "Оборот*" Then
j4a = 3
End If
If JV1 = 42 And s1 Like "Остаток*" Then
j4a = 3
End If
If s1 Like "Основание операции*" Then
j4a = 11
End If
If s1 Like "Входящий остаток*" Then
j4a = 3
End If
'
sbold = ""
If JV1 = 45 Then j4a = 1
If JV1 = 85 Then j4a = 2
If JV1 = 107 Then j4a = 3
If JV1 = 161 Then j4a = 4
If JV1 = 249 Then j4a = 5
If JV1 = 340 And j4 < 6 Then j4a = 6
If JV1 = 507 Then j4 = 9
Do While j4 < j4a
j4 = j4 + 1
Print #1, "<td>-"
sbold = "<b>"
Loop
'''''''''''''''''
'Print #1, "<td>"; j1; "<td>"; j3
'Print #1, "<td>"; Word.ActiveDocument.Frames(j1).VerticalPosition
'Print #1, "<td>"; JV1
's1 = Replace(s1, ".", ",")
's1 = Replace(s1, ":", "-")
Print #1, "<td>'"; sbold; s1

Loop
Print #1, "</table>"
Close #1
'j1 = Shell("winword.exe c:\rtf0317.a2", vbMaximizedFocus)
j1 = Shell("excel.exe c:\rtf0317.a2", vbMaximizedFocus)
Debug.Print Now
End Sub
1
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
18.03.2012, 22:37  [ТС] 15
shanemac51, спасибо вам большое за помощь !!!
Макрос работает "на-ура", ОДНАКО есть некая проблема - уже в екселе он отображает значок между словами в ячейках, от которого можно избавиться только удаляя каждый значок (через Delete) по отдельности, а данных очень много, порядка 900 строк.
Подскажите пожалуйста как можно избавиться от этого значка. Прикладываю вам как образцы рисунок появляющегося значка и вырезку из таблицы в ексель.
За ранее выражаю свою благодарность !!!
Миниатюры
Перенести данные для удобной обработки из выгрузки в формате rtf  
Вложения
Тип файла: xls Выписка за 2011_4.xls (44.0 Кб, 7 просмотров)
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
19.03.2012, 01:55 16
это чтобы заблокировать автоформатирование больших чисел --кавычка

замена по листу кавычки на пустую строку

хотя попробовала и испортила банковские счета

лучше
-выберите что вам надо
-и уже затем по столбикам сделайте замену

Добавлено через 23 минуты
хотя у меня кавычка, а это нет

--откройте aa.rtf вордом
--найдите значок
--замена
----вставьте значок
----заменить на пустую строку или пробел

хотя это рамки--замена может не стаботать
приложите лист ворда с вашей стрелкой, посмотрю

цщквщь

Добавлено через 31 минуту
Код
s1 = Replace(s1, Chr(11), " ")      '''добавьте эту 1 строку
Print #1, "<td>'"; s1

Loop
Print #1, "</table>"
1
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
19.03.2012, 19:47  [ТС] 17
shanemac51, большое спасибо вам еще раз.
Я нашел решение на сайте Excel, оно несколько проще:

=ПОДСТАВИТЬ(A2;СИМВОЛ(11)

вот эта маленькая формула избавляет нас от "кавычек"
... в А2 = ячейка с текстом ...

Спасибо вам !!
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
06.04.2012, 17:18  [ТС] 18
Ребятки, добрый день!

Пытаюсь работать с вышеприведенным макросом shanemac51 с последними правками от нее на другом компьютере. Соответственно я заменил путь к файлу
было

Open "c:\rtf0317.a2" For Output As #1
.....

j1 = Shell("excel.exe c:\rtf0317.a2", vbMaximizedFocus)

стало

Open "D:\Documents and Settings\e.babchinskiy\Desktop\rtf0317.a2" For Output As #1
.....
j1 = Shell("excel.exe D:\Documents and Settings\e.babchinskiy\Desktop\rtf0317.a2", vbMaximizedFocus)

Однако, сразу после запуска макроса выпадает ошибка и сообщение, что "Documents" найти нельзя, я нажимаю Ок и появляется следующая ошибка "and" найти нельзя, затем снова Ок и появляется следующая ошибка "Settings" найти нельзя ...

Подскажите поджалуйста, почему это происходит и как этого избежать ...
на домашнем компе макрос работает
0
Модератор
Эксперт MS Access
11391 / 4701 / 759
Регистрация: 07.08.2010
Сообщений: 13,649
Записей в блоге: 4
06.04.2012, 18:58 19
ПРОБЕЛЫ В ИМЕНИ КАТАЛОГА ИЛИ ФАЙЛА --НЕДОПУСТИМЫ

или ка компе 2-а екселя и без прописанного пути система не знает--гле искать
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
06.04.2012, 22:00  [ТС] 20
... а можно ли не прописывать полный путь к файлу, а как-то заменить его, чем-то вроде "ThisWorkbook.Path" как в екселе ??
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2012, 22:00
Помогаю со студенческими работами здесь

В каком формате лучше хранить текст для корректной обработки в дальнейшем?
есть строка #1#0#31#2 в каком формате ее хранить? что бы потом корректно прочитать Добавлено...

Письмо в формате RTF
Помогите решить следующую задачу. Есть форма в которой есть поле Body с типом RichText. Как сделать...

Отчет в формате RTF с границами
Здравствуйте. Есть 5 ПК, на них базы в accesse, все заполняют одну и ту же базу. Затем через 7 дней...

Экспорт отчета в формате rtf
Добрый день. Подскажите пожалуйста каким образом программно экспортировать отчет в Word в котором...

Печать текста в формате RTF
День добрый! Столкнулся с задачей, которая на первый взгляд показалась простой, а вот справиться с...

Сохранение из RichTextBox текст в формате rtf
Как сохранить в формате (*.rtf) string arr_text =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru