Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Конвертация файла из .pdf в .xls - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Конвертация файла из .pdf в .xls (Макросы/Sub)
Конвертация файла из .pdf в .xls
XMbIPb Дата: Воскресенье, 12.06.2016, 21:08 | Сообщение № 21
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я только 21 июня выйду на работу и у меня появится доступ ко всем файлам.
Цикл работы макроса: от письма Outlook, до преобразования в Excel


Все, что Бог ни делает, все к лучшему.
 
Ответить
СообщениеЯ только 21 июня выйду на работу и у меня появится доступ ко всем файлам.
Цикл работы макроса: от письма Outlook, до преобразования в Excel

Автор - XMbIPb
Дата добавления - 12.06.2016 в 21:08
anvg Дата: Понедельник, 13.06.2016, 12:55 | Сообщение № 22
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Цитата
А с ближними поделиться?
Андрей, так а чего там сложного? Выгрузка вложения из Outlook дело понятное. Затем конвертер из Pdf в Txt с поддержкой командной строки что-нибудь вроде этого, а потом чтение полученных текстовых файлов и выгрузка их данных на лист.
 
Ответить
СообщениеДоброе время суток
Цитата
А с ближними поделиться?
Андрей, так а чего там сложного? Выгрузка вложения из Outlook дело понятное. Затем конвертер из Pdf в Txt с поддержкой командной строки что-нибудь вроде этого, а потом чтение полученных текстовых файлов и выгрузка их данных на лист.

Автор - anvg
Дата добавления - 13.06.2016 в 12:55
XMbIPb Дата: Вторник, 21.06.2016, 17:34 | Сообщение № 23
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Как и обещал, выкладываю:
Мой макрос начинается с Outlook. Написаны 2 правила, которые, если видят в теме письма ключевое слово, то срабатывают скрипты:
Первый сохраняет данные письма в строку Excel.
[vba]
Код
Sub сохранение_писем(oMailItem As Outlook.MailItem)
    Dim X, i, k As Integer
    Dim oOutlook As Outlook.Application
    Set oOutlook = New Outlook.Application
    Dim oNs As Outlook.NameSpace
    Set oNs = oOutlook.GetNamespace("MAPI")    
    Dim oInbox As Outlook.MAPIFolder
    Set oInbox = oNs.GetDefaultFolder(olFolderInbox)    
    Dim nameaf, namevl, adres, telo, teloo, tema As String
    Dim dateofmailitem As String
Dim objXls As Object
Dim wb As Object
Set objXls = CreateObject("Excel.Application")
Set wb = objXls.workbooks.Open("Y:\2_Рабочие файлы\2.1_ОКР\2.1.1_Реестр скидок\Вложения\Файлы для макроса\Хранилище писем.xlsb")
objXls.Application.Visible = True
    X = 1
    Do While objXls.Cells(X, 1).Value <> 0
        X = X + 1
    Loop
                    'Вызов приложения OutLook
                    Set objOL = CreateObject("Outlook.Application")
                    'Проверяем каждое выбранное письмо на наличие вложений.
                    'Если есть - сохраняем вложения по пути strFolderPath
                    For Each oMailItem In objSelection
                    'Превращаем переменную в коллекцию вложений
                    Set objAttachments = oMailItem.Attachments
                    'Подсчитываем вложения
                    lngCount = objAttachments.Count
                    'Если вложения есть, то...
                    If lngCount > 0 Then
'                    lngCount = 1 'ручная установка количества вложений
                    'Перебираем вложения
                    For k = 1 To lngCount
                    'Получаем имя конкретного вложения
                    namevl = objAttachments.Item(k).FileName
                    objXls.Sheets(1).Cells(X, k + 6).Value = namevl
                    Next k
                    End If
                    Next
    nameaf = oMailItem.SenderName 'имя отправителя
    adres = oMailItem.SenderEmailAddress  'адрес отправителя - работает не корректно. Дает глюки
    teloo = oMailItem.Body 'тело письма
    telo = oMailItem.HTMLBody 'тело письма
    tema = oMailItem.Subject 'тема письма
    dateofmailitem = Format(oMailItem.ReceivedTime, "dd.mm.yyyy hh.ss") 'время письма    
    objXls.Sheets(1).Cells(X, 1).Value = dateofmailitem
    objXls.Sheets(1).Cells(X, 2).Value = nameaf
    objXls.Sheets(1).Cells(X, 3).Value = adres
    objXls.Sheets(1).Cells(X, 4).Value = tema
    objXls.Sheets(1).Cells(X, 5).Value = telo
    objXls.Sheets(1).Cells(X, 6).Value = teloo
    X = X + 1
Set objXls = Nothing
wb.Save
wb.Close
End Sub
[/vba]

Потом запускается второй, который сохраняет вложения в папку:
Sub[vba]
Код
save_a(myItem As Outlook.MailItem)
Dim att_count As Integer
    For att_count = 1 To myItem.Attachments.Count
        myItem.Attachments.Item(att_count).SaveAsFile ("Y:\2_Рабочие файлы\2.1_ОКР\2.1.1_Реестр скидок\Вложения\" & myItem.Attachments.Item(att_count).FileName)
    Next
End Sub
[/vba]

Дальше запускается внутренний макрос, который обрабатывает эти письма по Excel списку. Принципы его работы интереса для вас не представляют.
Он запускает обработку PDF файлов, в ходе чего он конвертирует их в txt

В папке "C:\pdf2txt" сохраняем все файлы из удалено
[moder]А чего это мы ссылками кидаемся? Если хотите поделиться готовым решением, для этого есть специальная ветка форума.
Здесь запрещено выкладывать файлы на сторонние ресурсы.[/moder]
Переносим Pdf файл в эту папку с называнием "YourPage.pdf" и запускается макрос:

[vba]
Код
Public Sub OpenPDF2()
    Set WshShell = CreateObject("WScript.Shell")
    ChDir ("C:\pdf2txt")
    TestValue = Shell("C:\pdf2txt\YourPage.bat", 1)
End Sub
[/vba]
Макрос преобразует PDF в TXT, А потом устанавливается связь с текстом и начинается уже работа с таблицей.


Все, что Бог ни делает, все к лучшему.

Сообщение отредактировал Manyasha - Вторник, 21.06.2016, 23:14
 
Ответить
СообщениеКак и обещал, выкладываю:
Мой макрос начинается с Outlook. Написаны 2 правила, которые, если видят в теме письма ключевое слово, то срабатывают скрипты:
Первый сохраняет данные письма в строку Excel.
[vba]
Код
Sub сохранение_писем(oMailItem As Outlook.MailItem)
    Dim X, i, k As Integer
    Dim oOutlook As Outlook.Application
    Set oOutlook = New Outlook.Application
    Dim oNs As Outlook.NameSpace
    Set oNs = oOutlook.GetNamespace("MAPI")    
    Dim oInbox As Outlook.MAPIFolder
    Set oInbox = oNs.GetDefaultFolder(olFolderInbox)    
    Dim nameaf, namevl, adres, telo, teloo, tema As String
    Dim dateofmailitem As String
Dim objXls As Object
Dim wb As Object
Set objXls = CreateObject("Excel.Application")
Set wb = objXls.workbooks.Open("Y:\2_Рабочие файлы\2.1_ОКР\2.1.1_Реестр скидок\Вложения\Файлы для макроса\Хранилище писем.xlsb")
objXls.Application.Visible = True
    X = 1
    Do While objXls.Cells(X, 1).Value <> 0
        X = X + 1
    Loop
                    'Вызов приложения OutLook
                    Set objOL = CreateObject("Outlook.Application")
                    'Проверяем каждое выбранное письмо на наличие вложений.
                    'Если есть - сохраняем вложения по пути strFolderPath
                    For Each oMailItem In objSelection
                    'Превращаем переменную в коллекцию вложений
                    Set objAttachments = oMailItem.Attachments
                    'Подсчитываем вложения
                    lngCount = objAttachments.Count
                    'Если вложения есть, то...
                    If lngCount > 0 Then
'                    lngCount = 1 'ручная установка количества вложений
                    'Перебираем вложения
                    For k = 1 To lngCount
                    'Получаем имя конкретного вложения
                    namevl = objAttachments.Item(k).FileName
                    objXls.Sheets(1).Cells(X, k + 6).Value = namevl
                    Next k
                    End If
                    Next
    nameaf = oMailItem.SenderName 'имя отправителя
    adres = oMailItem.SenderEmailAddress  'адрес отправителя - работает не корректно. Дает глюки
    teloo = oMailItem.Body 'тело письма
    telo = oMailItem.HTMLBody 'тело письма
    tema = oMailItem.Subject 'тема письма
    dateofmailitem = Format(oMailItem.ReceivedTime, "dd.mm.yyyy hh.ss") 'время письма    
    objXls.Sheets(1).Cells(X, 1).Value = dateofmailitem
    objXls.Sheets(1).Cells(X, 2).Value = nameaf
    objXls.Sheets(1).Cells(X, 3).Value = adres
    objXls.Sheets(1).Cells(X, 4).Value = tema
    objXls.Sheets(1).Cells(X, 5).Value = telo
    objXls.Sheets(1).Cells(X, 6).Value = teloo
    X = X + 1
Set objXls = Nothing
wb.Save
wb.Close
End Sub
[/vba]

Потом запускается второй, который сохраняет вложения в папку:
Sub[vba]
Код
save_a(myItem As Outlook.MailItem)
Dim att_count As Integer
    For att_count = 1 To myItem.Attachments.Count
        myItem.Attachments.Item(att_count).SaveAsFile ("Y:\2_Рабочие файлы\2.1_ОКР\2.1.1_Реестр скидок\Вложения\" & myItem.Attachments.Item(att_count).FileName)
    Next
End Sub
[/vba]

Дальше запускается внутренний макрос, который обрабатывает эти письма по Excel списку. Принципы его работы интереса для вас не представляют.
Он запускает обработку PDF файлов, в ходе чего он конвертирует их в txt

В папке "C:\pdf2txt" сохраняем все файлы из удалено
[moder]А чего это мы ссылками кидаемся? Если хотите поделиться готовым решением, для этого есть специальная ветка форума.
Здесь запрещено выкладывать файлы на сторонние ресурсы.[/moder]
Переносим Pdf файл в эту папку с называнием "YourPage.pdf" и запускается макрос:

[vba]
Код
Public Sub OpenPDF2()
    Set WshShell = CreateObject("WScript.Shell")
    ChDir ("C:\pdf2txt")
    TestValue = Shell("C:\pdf2txt\YourPage.bat", 1)
End Sub
[/vba]
Макрос преобразует PDF в TXT, А потом устанавливается связь с текстом и начинается уже работа с таблицей.

Автор - XMbIPb
Дата добавления - 21.06.2016 в 17:34
RAN Дата: Вторник, 21.06.2016, 18:51 | Сообщение № 24
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Первый сохраняет данные письма в строку Excel.

К теме не относится.
Потом запускается второй,

Аналогично
Дальше запускается внутренний макрос

Он запускает обработку PDF файлов, в ходе чего он конвертирует их в txt

Принципы его работы интереса для вас не представляют.

Как так? А тема о чем?
Макрос преобразует PDF в TXT

Да ничего этот макрос не преобразует. Он запускает bat файл, который, похоже, и выполняет преобразование.

"Жаль, что нам так и не удалось заслушать начальника транспортного цеха..." (с) :(


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

К теме не относится.
Потом запускается второй,

Аналогично
Дальше запускается внутренний макрос

Он запускает обработку PDF файлов, в ходе чего он конвертирует их в txt

Принципы его работы интереса для вас не представляют.

Как так? А тема о чем?
Макрос преобразует PDF в TXT

Да ничего этот макрос не преобразует. Он запускает bat файл, который, похоже, и выполняет преобразование.

"Жаль, что нам так и не удалось заслушать начальника транспортного цеха..." (с) :(

Автор - RAN
Дата добавления - 21.06.2016 в 18:51
XMbIPb Дата: Среда, 22.06.2016, 13:09 | Сообщение № 25
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сначала говорят делись тем, как у меня это заработало. А потом не нравится. Не надо, так не надо, я не настаиваю.
Без ссылки на bat файл, мой пост вообще не имеет смысла, а прикладывать к письму - по размеру не залезал.

Всем пока.


Все, что Бог ни делает, все к лучшему.
 
Ответить
СообщениеСначала говорят делись тем, как у меня это заработало. А потом не нравится. Не надо, так не надо, я не настаиваю.
Без ссылки на bat файл, мой пост вообще не имеет смысла, а прикладывать к письму - по размеру не залезал.

Всем пока.

Автор - XMbIPb
Дата добавления - 22.06.2016 в 13:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Конвертация файла из .pdf в .xls (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!