Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Софт для проверки целостности файлов xls и док. / 7 сообщений из 7, страница 1 из 1
28.08.2006, 22:07
    #33948155
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Софт для проверки целостности файлов xls и док.
Может кто подскажет софт, для проверки файлов офиса на предмет их соответствия своему формату, т.е. возможности их открытия(не чтения с диска , а именно открытия в ворде или экселе). Файлы находятся в произвольном каталоге, произвольной вложенности. Учитывая этот факт, и то что файлов порядка 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
30.08.2006, 01:07
    #33951161
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Софт для проверки целостности файлов xls и док.
Для того чтобы избежать остановки на запароленном 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
30.08.2006, 12:16
    #33951913
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Софт для проверки целостности файлов xls и док.
Для того чтобы избежать остановки на запароленном excel файле можно
использовать ADODB:
Спасибо большое! Не ожидал, что ответ будет таким подробным и тем более для копи-пасте.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.09.2019, 07:28
    #39862118
Liostry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Софт для проверки целостности файлов xls и док.
Здравствуйте всем!
А может кто то в личке подробнее растолковать или помочь в подобном? с учетом того что я в программировании даже не ноль а минус бесконечность.

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

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


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