Страницы: 1
RSS
Каталог в Excel
 
Всем доброго времени суток!  
 
Передо мной поставлена интересная задача и, к сожалению, есть минимум времени на реализацию.  
Поэтому, очень прошу Вашей помощи, господа!  
 
Итак, необходимо создать в Excel список документов в заданной папке (что-то типа структурированного архива) и полностью управлять ими из Excel:  
- Переименовывать  
- Копировать  
- Удалять  
- Обновлять перечень и свойства файлов (Заголовок, Тема, Категория)  
 
В папке могут быть файлы 3 основных типов: DOCX, XLSM и PDF.  
Для заполнения свойств документов думаю использовать DSOFILE:  
http://www.microsoft.com/en-us/download/details.aspx?id=8422  
 
Помогите с реализацией, please!
 
http://www.planetaexcel.ru/forum.php?thread_id=46566
 
А какое отношение ваш вопрос имеет к теме форума - Microsoft Excel?  
 
По вашей ссылке - OLE File Property Reader  
обратите внимание на последнее слово - Reader, т.е. эта штука только прочитать свойства сможет, а не изменить их.  
 
 
> Передо мной поставлена интересная задача и, к сожалению, есть минимум времени на реализацию.  
 
Самостоятельно что-либо сделали?  
Если нет - сколько готовы заплатить за решение?  
(судя по заданию, изложенному в теме, вы ждете готовое решение, да ещё и срочно)
 
To EducatedFool  
> А какое отношение ваш вопрос имеет к теме форума - Microsoft Excel?  
Собственно список создаётся и обрабатывается в Excel.  
 
> эта штука только прочитать свойства сможет, а не изменить их.  
Из Overview: ...Reader 2.1 Sample demonstrates how to use the IPropertyStrorage interface to read and write document properties... Т.е. запись тоже работает, сам проверял несколько лет назад.  
 
> сколько готовы заплатить за решение?  
Я уже давно на этом форуме, как и сотни других пользователей!  
Но никогда ещё меня не просили сначала оплатить решение задачи, которого ещё нет.
 
Спасибо, Михaил!
 
> Передо мной поставлена интересная задача  
 
Вам платят за выполнение этой задачи?  
Почему же сами не делаете свою работу, тем более, если она интересная?  
 
 
> Помогите с реализацией, please!  
 
Да конечно поможем, не вопрос. И ни копейки денег за это не возьмём.  
Вы только покажите свои попытки сделать что-то самостоятельно, и скажите, что конкретно не получается.  
 
А делать за вас всю эту бессмысленную работу (которую вы назвали интересной, в надежде на халяву), вряд ли кто будет...
 
Ребята, вы только не подумайте, что я халявщик или бездельник.  
Мне придётся разобрать ~8500 документов:  
- удалить дубликаты, временные и битые файлы;  
- исправить файлы со стёртым расширением;  
- собрать файлы, сохранённые отдельными страницами и как HTML с изображениями  
- конвертировать многостраничные Tiff и DjVu в PDF;  
- конвертировать DOC, RTF, MHT в DOCX;  
- оптимизировать все файлы для уменьшения занимаемого места;  
- переименовать все файлы по тематике и т.д. и т.п.  
 
Задача назрела за много лет работы - просто стало трудно ориентироваться в такой куче документов. Лично я не получу за это ни копейки.  
 
Помощи прошу потому, что у меня не хватает знаний по VB.  
Я не считаю, что мне тут кто-то что-то должен. Но надеюсь, что найдутся люди, которым будет интересно поучаствовать в решении данной задачи и, может быть, применить полученное решение для своих целей.
 
EducatedFool, надеюсь, то, что я написал, поможет Вам понять ситуацию.  
Хотя, может быть у Вас просто что-то не сложилось в этой жизни.  
Извините, если Вас задело что-то сказанное мною выше...  
Не хотел Вас обидеть!=)
 
Для начала почитайте про FileSystemObject - библиотека Microsoft Scripting Runtime: работа с дисками, папками, файлами. Для совокупности можете почитать про Shell.Application библиотека Microsoft Shell Controls And Automation. Наиболее полно можно найти здесь forum.script-coding.com/.    
Если не любите сторонних библиотек, то читайте информацию по модулю FileSystem. С библиотекой чтения свойств файлов, как я понимаю, вы уже разобрались.  
Поищите по темам здесь и в инете поиск файлов по всем папкам для составления каталога файлов.
 
Anvg, спасибо!  
Обязательно почитаю.
 
Для того, что вы описали, подойдёт любой файловый менеджер - типа Total Commander с плагинами.  
 
И дубликаты найдёт, и переименует все как надо, и удалит ненужное...  
Часть из того, что вы описали - надо делать спец программами (типа конвертации файлов)  
 
Из всего, что вы описали после фразы «Мне придётся разобрать ~8500 документов:»,  
не нашел ничего такого, что чего был бы нужен Excel.  
Зачем тратить кучу времени на создание файлового менеджера в Excel, если есть куча бесплатных многофункциональных утилит?  
 
 
PS: Как получить список файлов - написано здесь:  
http://excelvba.ru/code/FilenamesCollection  
 
Как прочитать свойства файлов - здесь:  
http://forums.codeguru.com/showthread.php?372929-Excel-VBA-File-Properties  
 
Удалять, переименовывать, копировать файлы - просто (есть операторы Kill, Name, FileCopy)  
 
Как всё остальное будете делать - представления не имею...
 
Hunter, а зачем Вы создаёте темы-дубликаты?
 
EducatedFool, за ссылки от души спасибо!!!  
> Как всё остальное будете делать - представления не имею...  
Всё перечисленное после фразы «Мне придётся разобрать ~8500 документов» я уже почти сделал. Программы: Duplicate Cleaner, DjVuToy + PdgCntEditor, Doc2docx, NXPowerLite, TotalCMD (собственной сборки).  
Многое пришлось делать вручную, т.к. дубликаты документов, скачанных в разное время с разных источников не найти автоматом (в них изначально нет ничего общего, к тому же нужно было учитывать, что многие файлы обросли пометками специалистов нашего отдела). В целом, понадобилось чуть больше дня.  
 
> Зачем тратить кучу времени на создание файлового менеджера в Excel  
Просто подходящих бесплатных программ нет, а платные во-первых, не купят, во-вторых, придётся объяснять, как с ними работать.  
Зато есть лицензионный и всем знакомый Excel, где можно ввести единую плавающую нумерацию документов, использовать фильтры, комментарии, ссылки и т.п.  
А самое главное - полученный файл легко связать с расчётными таблицами Excel и шаблонами Word. Как показала практика, это очень удобно.
 
Юрий М, это получилось случайно. Вторую тему можно удалить.  
Планету (или мой браузер) сегодня глючит на создании и отправке тем...  
 
Sorry.
 
Уже удалил. А спешить просто не нужно - дождитесь обновления страницы. И у меня сайт глючит...
 
Я вот тоже задачу не понял - каким боком тут Эксель? Хранить ссылки на файлы и перемещать/переименовывать кликом? Зачем?  
Если нужно создать некое электронное хранилище файлов, где каждому документу можно дать редактируемое описание/пометки и где всё всегда легко найти по различным параметрам - это уже серьёзная программа, в любом случае серьёзная и дорогая работа. С поддержкой.  
У нас сваяли нечто подобное, с web-мордой - вполне удобная штука, но уже пару лет как работает, и всё ещё до совершенства не доведена.  
Конвертации/переименования файлов там нет - да оно и не нужно, это мелкие локальные проблемы пользователя. Есть только сканирование в pdf - остальная подготовка помещаемых в базу файлов на ответственности пользователя.  
Я участия в разработке не принимал, так что внутренности не знаю.
 
Не дождался я обновления страницы - истёк тайм-аут.  
После нажатия F5 (обновить), увидел сразу 2 темы.  
Вот такая канитель.  
PS: Извиняюсь за оффтоп )))
 
А что у Вас именно не получается?  
Смотрели те ссылки, которые Вам предоставил Игорь(EducatedFool)?  
Вы опишите подробней, то что Вы хотите получить в результате от Экселя, с учетом всех (пускай будет бесплатных) программ.
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
EducatedFool!  
 
Пусть меня забанят за оффтоп (не дай бог это практикуется на этом сайте), но аська вообще никак не коннектится. Поэтому пишу здесь.  
Я посмотрел некоторые Ваши работы...  
Сразу скажу, многое видел на VBE (часть даже понял и освоил), но чтоб было возможно то, что Вы делаете, я даже подумать не мог.  
Снимаю шляпу!  
 
А сколько стоят Ваши услуги?
 
LightZ!  
 
Если вкратце, то:  
1. Автоматом сформировать список файлов в указанной папке  
2. Автоматом сформировать таблицу свойств файлов (имя, путь, тип и размер)  
3. Вручную для каждого файла указать название, № документа, категорию (основополагающие НТД, расчётные и т.п.), дату введения и последней редакции  
4. Записать полученные название, № документа и категорию в свойства файла (Заголовок - Тема - Категория)  
 
В дальнейшем папка НТД будет использоваться в работе, обновляться и дополняться.  
Соответственно, желательно, чтобы в Excel:  
- в Excel можно было отметить, когда файл последний раз проверялся на обновление  
- при нажатии "Обновить" зачитывались новые файлы из папки НТД  
- при нажатии "Переименовать" записывались новые свойства файлов из Excel (имя файла, название, № и категория документа)  
- при нажатии "Копировать/Удалить" выполнялись соответствующие действия с файлами, отмеченными, скажем, знаком "+"  
 
Всё.  
 
PS: до ссылок Игоря (EducatedFool) только что добрался. Пока мало, что понял. Стараюсь надеяться, что разберусь! Хотя надежда тает...
 
Более точно сформулировал задачи и цели проекта...  
 
Задачи автоматизации:  
1. Сформировать список файлов в указанной папке с гиперссылками на них  
2. Сформировать таблицу свойств файлов (имя, путь, тип и размер)  
3. Анализировать перечень НТД средствами Excel (тип и размер файлов; даты введедения и обновления документов)  
4. При нажатии "Переименовать" переписывать свойства файлов из Excel (имя файла, название, № и категория документа в теги "Заголовок" - "Тема" - "Категория")  
5. При нажатии "Обновить" зачитывать новые файлы из папки НТД  
6. При нажатии "Копировать/Удалить" выполнять соответствующие действия с файлами, отмеченными, скажем, знаком "+" (при удалении файла также необходимо удалить строку из списка Excel)  
 
Цели проекта:  
1. Ввести единую нумерацию НТД для расчётных таблиц и пояснительных записок  
2. Оперативно составлять готовые наборы и наглядные списки НТД под конкретные задачи  
3. Быстро корректировать номер, название и категорию документов  
4. Удобно работать с файлами через Проводник за счёт наличия у файлов заданных свойств  
5. Отслеживать, сколько времени прошло с момента последней проверки актуальности документов  
6. Не тратить деньги и время на подбор, покупку и освоение новых программ  
 
Надежды самому разобраться почти нет...
 
> Надежды самому разобраться почти нет...  
 
Да ладно...  
Первые 2 пункта уже сделаны - см. второй пример в прикреплённом к статье файле:  
http://excelvba.ru/code/FilenamesCollection  
 
Пункты 3 и 5 - что-то по сути похожее, можно считать, они готовы наполовину.  
Осталось дело за малым)  
 
 
4 пункт - вот вам код, чуточку только переделать  
(прописывает информацию в открытом файле Excel):    
 
 
Sub FillWorkbookProperties_test()  
 
   FillWorkbookProperties ActiveWorkbook, "Мой заголовок", "Тема файла", _  
   "EducatedFool", , , "EducatedFool", , "http://excelvba.ru/"  
     
End Sub  
 
 
Sub FillWorkbookProperties(ByRef wb As Workbook, _  
                          Optional ByVal Title As String = vbNullString, Optional ByVal Subject As String = vbNullString, _  
                          Optional ByVal Author As String = vbNullString, Optional ByVal Keywords As String = vbNullString, _  
                          Optional ByVal Template As String = vbNullString, Optional ByVal LastAuthor As String = vbNullString, _  
                          Optional ByVal Manager As String = vbNullString, Optional ByVal Company As String = vbNullString)  
   On Error Resume Next  
 
   MyComment = "http://excelvba.ru/" & vbNewLine & "Разработка макросов любой сложности для Excel"  
 
   With wb.BuiltinDocumentProperties  
       If Len(Title) Then .item(1) = Title  
       If Len(Subject) Then .item(2) = Subject  
       If Len(Author) Then .item(3) = Author  
       If Len(Template) Then .item(4) = Template  
       .item(5) = MyComment  
       If Len(LastAuthor) Then .item(7) = LastAuthor  
       If Len(Manager) Then .item(20) = Manager  
       If Len(Company) Then .item(21) = Company  
   End With  
End Sub
Страницы: 1
Читают тему
Наверх