0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
|
|
1 | |
Перенести данные для удобной обработки из выгрузки в формате rtf15.03.2012, 22:33. Показов 4140. Ответов 21
Метки нет Все метки)
(
Ребятки, помогите пожалуйста.
Необходима ваша помощь. Есть выгрузка (скорее всего из "банк-клиент"). Выгрузка в формате rtf, НО самое проблемное то, что данные оттуда не возможно перенести в excel для дальнейшей обработки. Почему-то каждое значение (слово) находится в своей ячейке и при копировании в другие документы сбивается все форматирование. Ребятки, помогите выйти из сложившейся ситуации. Что можно сделать для того, чтобы с данными можно было работать ?? Прикладываю два листа с данными, на самом деле в документе более 100 листов.
0
|
|
15.03.2012, 22:33 | |
Ответы с готовыми решениями:
21
Перенести в таблицу динамические данные выгрузки по 2 параметрам Программы для удобной обработки орф/грам ошибок Создание обработки для выгрузки данных в dbf: Ошибка создания файла Пиксели. Сгенерировать данные, которые отвечают условию задачи, и вывести их в текстовом файле в форме, удобной для просмотра. |
Модератор
![]() |
|
15.03.2012, 23:55 | 2 |
нечто читаемое
0
|
5965 / 3169 / 706
Регистрация: 23.11.2010
Сообщений: 10,577
|
|
16.03.2012, 08:41 | 3 |
У меня получилось так, но дело довольно хлопотное.
Надо удалить разрывы строк обязательно. Я сначала заменила знаки абзаца на табуляцию, Затем выделить текст без шапки таблицы и преобразовать в таблицу 9 столбцов (в примере Столбец Кредит пустой, а так надо было бы 10 столбцов) Затем эту таблицу надо перенести в ексел и сцепить столбцы с реквизитами. Может стоит сразу перевести в ексел, а затем =ТРАНСП() ?
1
|
Модератор
![]() |
|
16.03.2012, 09:50 | 4 |
В екселе
-для пробы нужен документ ---кредит --не пустой ---дебит --пустой
0
|
Модератор
![]() |
|
16.03.2012, 10:52 | 5 |
какие еще поля могут быть не заполнены
1
|
1300 / 402 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
|
|
16.03.2012, 16:47 | 6 |
Евгеша_и_Пух,
1
|
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
|
|
16.03.2012, 21:06 [ТС] | 7 |
Ребятки, спасибо всем! Я попробовал все предложенные вами варианты, более удобным для меня является вариант от Busine. Хотя ABBYY FineReader стоит не на каждом компе, но на рабочем я спокойно могу использовать данный способ для реанимации данных. Большое спасибо !!
0
|
Модератор
![]() |
|
16.03.2012, 21:55 | 8 |
вы хоть смотрели этот вариант, чистый ексель без PDF ------rtf002.zip
все в клеточках без распознавания -в ворде пускается макрос -получаем НТМ -который легко открывается и вордом и екселем(в нормальном формате)
0
|
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
|
|
17.03.2012, 09:36 [ТС] | 9 |
Добрый день! Shanemac51, конечно я просмотрел каждый вариант, предложенный всеми, кто участвовал в решении моей проблемы. Однако более простым и понятным оказался тот вариант, о котором я упомянул выше. К сожалению я ОЧЕНЬ плохо разбираюсь в вордовских макросах. Мне больше приходится работать в екселе. В вашем варианте только результат, а мне необходимо решение.
0
|
Модератор
![]() |
|
17.03.2012, 10:15 | 10 |
прилагаю вордовский документ с макросом
--ругнется на плохой ексель --игнорировать и продолжить --сохранить как ексель-документ нужной версии
0
|
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
|
|
17.03.2012, 14:52 [ТС] | 11 |
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, в ходе тестирования выявил, что "кредит" попадает в колонку "дебет" и все суммы сумируются в одном столбце. В приложенном мною файле, к сожалению, не оказалось строк с суммами по "кредиту", на самом деле они есть. Так же, для обработки данных на 135 листах, макрос затратил 18 минут (но это не так уж важно по сравнению с первой проблемой. Пожалуйста, помогите устранить проблему.
0
|
Модератор
![]() |
|
17.03.2012, 15:45 | 12 |
желательно на 1-м листе превосходно, если для 1-й позиции я об этом уже просила
1
|
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
|
|
17.03.2012, 16:04 [ТС] | 13 |
shanemac51, спасибо! Просто вначале я не понял сути вашего сообщения. Прикладываю пример на 5 листах, форматирование очень сложное, старался вырезать самое необходимое.
0
|
Модератор
![]() |
|
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 строк. Подскажите пожалуйста как можно избавиться от этого значка. Прикладываю вам как образцы рисунок появляющегося значка и вырезку из таблицы в ексель. За ранее выражаю свою благодарность !!!
0
|
Модератор
![]() |
|
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
|
Модератор
![]() |
|
06.04.2012, 18:58 | 19 |
ПРОБЕЛЫ В ИМЕНИ КАТАЛОГА ИЛИ ФАЙЛА --НЕДОПУСТИМЫ
или ка компе 2-а екселя и без прописанного пути система не знает--гле искать
0
|
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 10
|
|
06.04.2012, 22:00 [ТС] | 20 |
... а можно ли не прописывать полный путь к файлу, а как-то заменить его, чем-то вроде "ThisWorkbook.Path" как в екселе ??
0
|
06.04.2012, 22:00 | |
Помогаю со студенческими работами здесь
20
В каком формате лучше хранить текст для корректной обработки в дальнейшем? Письмо в формате RTF Отчет в формате RTF с границами Экспорт отчета в формате rtf Печать текста в формате RTF Сохранение из RichTextBox текст в формате rtf Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |