powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Софт для проверки целостности файлов xls и док.
7 сообщений из 7, страница 1 из 1
Софт для проверки целостности файлов xls и док.
    #33948155
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кто подскажет софт, для проверки файлов офиса на предмет их соответствия своему формату, т.е. возможности их открытия(не чтения с диска , а именно открытия в ворде или экселе). Файлы находятся в произвольном каталоге, произвольной вложенности. Учитывая этот факт, и то что файлов порядка 5-6 тысяч, вариант тыкать в каждый и смотреьт, что получается - не самый гуманный.
В большенстве случаев хватает следующего, в цикле, обходящем дерево каталогов вызывается примерно такая ф-я:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set xlsObject = CreateObject("Excel.Application")
xlsObject.Workbooks.Open FileName:=ИмяФайла
...все ок, ниче не делаем
c_exit:
    xlsObject.Quit
    Set xlsObject = Nothing
    Exit Function
c_error:
...в лог пишим имя плохого файла файла и описание ошибки
    Resume c_exit
End Function
Все хорошо, до тех пор, пока не встречается запароленный файл.
Ну и время обхода всего этого дела, тоже не стремится к нулю.
В идеале нужна консольная утилита, с возможность вывода результатов своей работы в файл, или подсказка как программно проверить целостность офисного файла.
Спасибо.
...
Рейтинг: 0 / 0
Софт для проверки целостности файлов xls и док.
    #33951161
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того чтобы избежать остановки на запароленном excel файле можно использовать ADODB:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Function CheckXLFile(ByVal vstrFile As String, Optional ByRef rstrErrDescription As String) As Long
Const adOpenForwardOnly =  0 
Const adLockReadOnly =  1 
Const adOpenStatic =  3 

    Dim cat As Object
    Dim tbl As Object
    Dim cnn As Object
    Dim rs As Object
    Dim Err As Object
    Dim strConnString  As String
    Dim strSQL  As String
    Dim strError As String
    
    On Error GoTo HandleError
    Set cat = CreateObject("ADOX.Catalog")
    Set cnn = CreateObject("ADODB.Connection")
    strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";" _
                    & "Data Source=" & vstrFile
    cnn.Open strConnString
    Set cat.ActiveConnection = cnn
    Set tbl = cat.Tables( 0 )
    If Not tbl Is Nothing Then
        Set rs = CreateObject("ADODB.Recordset")
        strSQL = "SELECT * FROM [" & tbl.Name & "]"
        rs.Open strSQL, cnn, adOpenStatic, adLockReadOnly
    End If
    rs.Close
    cnn.Close
HandleExit:
    Set tbl = Nothing
    Set rs = Nothing
    Set cat = Nothing
    Set cnn = Nothing
    Exit Function
HandleError:
    For Each Err In cnn.Errors
        rstrErrDescription = rstrErrDescription & "Error #" & Err.Number & vbCrLf & _
            "   " & Err.Description & vbCrLf & _
            "   (Source: " & Err.Source & ")" & vbCrLf & _
            "   (SQL State: " & Err.SQLState & ")" & vbCrLf & _
            "   (NativeError: " & Err.NativeError & ")" & vbCrLf
        CheckXLFile = Err.Number
    Next
    Resume HandleExit
    
End Function
Вы можете обработать ошибки, например:

На запароленном файле возникнет ошибка:
NativeError: -327947149
Не удается дешифровать файл.

На файле другого формата:
NativeError: -328602519
Внешняя таблица не имеет предполагаемый формат.

Возможны, видимо, и др. ошибки.
...
Рейтинг: 0 / 0
Софт для проверки целостности файлов xls и док.
    #33951913
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того чтобы избежать остановки на запароленном excel файле можно
использовать ADODB:
Спасибо большое! Не ожидал, что ответ будет таким подробным и тем более для копи-пасте.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Софт для проверки целостности файлов xls и док.
    #39862118
Liostry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте всем!
А может кто то в личке подробнее растолковать или помочь в подобном? с учетом того что я в программировании даже не ноль а минус бесконечность.

Задача такая же, есть куча каталогов в несколько уровней и там попадаются битые файлы ворд ексел пдф (последствия многократных копирований на флешки о обратно), вот их бы в идеале перенести или хотя бы удалить.
...
Рейтинг: 0 / 0
Софт для проверки целостности файлов xls и док.
    #39862148
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с малого : обход выбранного каталога и выбор файлов нужного типа.
Потом добавьте вложенные папки итд
...
Рейтинг: 0 / 0
Софт для проверки целостности файлов xls и док.
    #39864839
Liostry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да ноль я в этом(, если кто может в личке подсказать, точнее помочь, пишите и обозначьте цену
...
Рейтинг: 0 / 0
Софт для проверки целостности файлов xls и док.
    #39865250
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Liostry,

Здесь нет лички, надо указывать почту.
Или публикуйте сообщение в форуме "Работа".
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Софт для проверки целостности файлов xls и док.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]