Dbf в excel иероглифы

 

Sanya

Пользователь

Сообщений: 20
Регистрация: 01.01.1970

Уважаемый ZVI — вставил в єексель Ваш код:  
Option Explicit  
Declare Function CharToOem Lib «user32» Alias «CharToOemA» (ByVal lpszSrc As String, ByVal lpszDst As String) As Long  

  ‘ ZVI:2009-01-20

http://www.sql.ru/forum/actualthread.aspx?tid=631075  

‘ Перекодировка DBF из Windows-1251 в DOS-866 для работы в Excel  
Sub Dbf_Win2Rus()  
 Dim FN%, s$, ptrData&, b() As Byte, FileName  
 On Error GoTo exit_  
 ‘ Выбрать DBF файл  
 ChDrive Mid(ThisWorkbook.Path, 1, 1)  
 ChDir ThisWorkbook.Path & «»  
 FileName = Application.GetOpenFilename(«DBF File (*.dbf), *.dbf», , _  
           «DBF Win2Dos»)  
 If FileName = False Then Exit Sub  
 ‘ Открыть DBF файл  
 FN = FreeFile  
 Open FileName For Binary Access Read Write As #FN  
 ‘ Считать все в байтовый массив  
 ReDim b(0 To LOF(FN) — 1)  
 Get #FN, , b  
 ‘ Проверить флаг перекодировки для исключения двойной  
 If CInt(b(29)) = 38 Then  
   If MsgBox(«DOS-кодировка уже установлена,» & vbLf _  
            & «Все равно продолжить?», _  
            vbExclamation + vbOKCancel + vbDefaultButton2, _  
            «Не навреди!») <> vbOK Then  
     GoTo exit_  
   End If  
 End If  
 ‘ Установить указатель на начало данных  
 ptrData = b(9) * 256 + b(8) + 1  
 ‘ Считать данные в Unicode  
 s = StrConv(MidB(b, ptrData), vbUnicode)  
 ‘ Перекодировать данные в DOS-866  
 ReDim b(0 To Len(s) — 1)  
 b = StrConv(Win2Dos(s), vbFromUnicode)  
 ‘ Переписать данные в DBF  
 Put #FN, ptrData, b  
 ‘ Установить флаг DOS-866 в DBF  
 Put #FN, 30, 38  
exit_:  
 Close #FN  
 If Err <> 0 Then  
   Debug.Print «Error: » & Err.Number & » — » & Err.Description  
 Else  
   MsgBox «Преобразовано успешно!», vbInformation, «DBF Win2Dos»  
 End If  
End Sub  

  Private Function Win2Dos(ByVal sWin As String) As String  
 Win2Dos = String(Len(sWin), Chr(0))  
 Call CharToOem(sWin, Win2Dos)  
End Function  

    но результат выполнения дает ошибку: прилагаю  

  подскажите в чем проблема. СПАСИБО

Цитата
Сообщение от ivangelline
Посмотреть сообщение

подгрузила файл с другим именем, но суть проблемы та же

Дело в том, что когда dbf-файлы подгружаются в excel, по умолчанию считается, что у них кодировка cp866, а в вашем dbf-файле кодировка UTF-8. Соответственно, для решения возможны следующие пути:
1. При выгрузке из OSMAND в dbf указывать кодировку cp866

Либо

2.1 Получившийся xlsx-файл с кракозябрами сохранить в формате CSV-DOS: Файл-Сохранить как — Тип файла: CSV (MS-DOS) *.csv.
2.2 У полученного файла с расширением .csv поменять расширение на .txt
2.3 Открыть его обычным блокнотом. Вместо кракозябр должны быть строки которые должны нормально читаться. Если нет — значит что-то не так.
2.4. Сохранить файл с кодировкой ANSI: Файл — Сохранить как. Тип файла — текстовые документы. Кодировка: меняете с UTF на ANSI.
2.5. Меняете расширение обратно на .csv
2.6. Открываете его в Excel

Либо писать макрос для перекодирования из Cp866 -через UTF8 — в ANSI.

Аватара пользователя

uav1606

Advanced Member
Сообщения: 5700
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество



Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Собственно, вопрос в названии темы — как можно заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)? По умолчанию она открывает файлы в OEM (866). Причём нужно именно «автономное» решение, т.к. человек, которому это нужно, не будет ничего конвертировать, настраивать, использовать другой софт и т.п. Раньше ему приходили файлы с кодировкой OEM, он их открывал Excel’ем, всё было нормально. Теперь кодировку сменили на ANSI, вместо русских букв — кракозябры.
Естественно, можно открыть через какой-нибудь DBF Viewer или ещё что-то, но ему нужно именно через Excel, где я никаких настроек кодировок не нашёл.


Аватара пользователя

uav1606

Advanced Member
Сообщения: 5700
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество



Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

uav1606 » 21.10.2019,14:55

Гм, ну, см. вложение. Хотя, вообще говоря, насколько я вижу, Excel (что 2003, что 2007) все DBF считает с кодировкой OEM (866), так что образец тут и ни к чему… (Поля FIO и NAME_STRIT должны быть на русском.)

Вложения
plat2.zip
(560 байт) 198 скачиваний


marinovsoft

Advanced Member
Сообщения: 487
Зарегистрирован: 02.09.2017,09:08
Откуда: Кемерово
Контактная информация:

Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

marinovsoft » 21.10.2019,15:21

В заголовке файла кодировка правильная указана?


Аватара пользователя

uav1606

Advanced Member
Сообщения: 5700
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество



Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

uav1606 » 21.10.2019,15:31

Да (C9h — Russian Windows).


Аватара пользователя

nimdasys_inbox_ru

Advanced Member
Сообщения: 3457
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

nimdasys_inbox_ru » 21.10.2019,15:36

uav1606 писал(а): ↑

21.10.2019,14:55


Гм, ну, см. вложение. Хотя, вообще говоря, насколько я вижу, Excel (что 2003, что 2007) все DBF считает с кодировкой OEM (866), так что образец тут и ни к чему… (Поля FIO и NAME_STRIT должны быть на русском.)

Ну да, это такой привет от MS, они думают, что в РФ основная кодировка для DBF — досовская!

Макросы применять для решения вышеобозначенной задачи допустимо ?!


Аватара пользователя

uav1606

Advanced Member
Сообщения: 5700
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество



Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

uav1606 » 21.10.2019,15:43

Может, и допустимо, но нежелательно. По крайней мере, они должны сами срабатывать, потому что что-то там нажимать и т.п. — я не объясню тому человеку, для него это слишком сложно.


Аватара пользователя

nimdasys_inbox_ru

Advanced Member
Сообщения: 3457
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

nimdasys_inbox_ru » 21.10.2019,15:45

uav1606 писал(а): ↑

21.10.2019,15:43


Может и допустимо, но не желательно. По крайней мере, они должны сами срабатывать, потому что что-то там нажимать и т.п. — я не объясню тому человеку, для него это слишком сложно.

Вопрос: открытая DBF’ка затем корректируется и результат сохраняется в виде файла .xls ?!


Аватара пользователя

uav1606

Advanced Member
Сообщения: 5700
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество



Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

uav1606 » 21.10.2019,15:46

Нет, просто открывается для визуальной проверки — глянуть фамилию и т.п.


Аватара пользователя

nimdasys_inbox_ru

Advanced Member
Сообщения: 3457
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

nimdasys_inbox_ru » 21.10.2019,15:52

uav1606 писал(а): ↑

21.10.2019,15:46


Нет, просто открывается для визуальной проверки — глянуть фамилию и т.п.

А, ну тогда могу предложить бесплатное решение DBF Commander Free, он ассоциируется с файликами DBF и от юзверя только требуется кликнуть по нужному ему файлу — всё открывается в красивом виде + можно сохранить во всех мыслимых форматах и кодировках, а также есть экспорт в Excel!


Аватара пользователя

CodeMaster

Advanced Member
Сообщения: 7669
Зарегистрирован: 27.08.2010,11:17
Откуда: Воронеж
Контактная информация:

Вклад в сообщество

Как заставить Excel 2003 открывать DBF в ANSI-кодировке (1251)

Сообщение

CodeMaster » 21.10.2019,15:56

uav1606 писал(а): ↑

21.10.2019,15:46


Нет, просто открывается для визуальной проверки — глянуть фамилию и т.п.

Скрипт, которому за которым закрепляются файлы с расширением .dbf, который отдаёт их конвертеру 866->1251, а результат в Excel 2003?

После эпидемии всегда приходит война…


Skip to content Skip to blog sidebar

err_codepage

Если вместо русских букв в Вашем файле отображается нечто иное и непонятное, то можно попробовать следующие варианты:
1. Нужно поменять кодировку файла. В заголовке таблицы в 29 байте хранится информация о кодировке DBF файла. DBFShow на основании этого байт использует ту или иную кодировку. Заходим в меню «РазноеКодировка» и пробуем выбрать другую кодировку. Для русского текста это либо 1251 — Russian Windows, либо 866-Russian OEM

err_codepage2

Меняем кодировку, смотрим на результат. Естественно файл должен быть доступен для записи. Буквы RW внизу экрана. Получаем русские буквы.

good_codepage2

Также в программе есть возможность автоматически проставлять код кодировки при открытии файлов DBF, если у файла значение кодировки равно 0. Для этого заходим в опции DBFSHow, ставим галочку на «Использовать кодировку по умолчанию», выбираем необходимую кодировку и программа будет исправлять значение кодировки при открытии файлов.

option_codepage

2. Если русские буквы не отображаются в названиях колонок, как например при выгрузке из Excel, то необходимо поставить галочку в пункте «Кодировка для русских колонок (из Excel)», (рисунок выше) выбрать необходимую кодировку и заново открыть файл.

Другие разделы FAQ, которые могут быть вам интересны:

Содержание

  • Способы открытия файлов DBF в Excel
    • Способ 1: запуск через окно открытия файлов
    • Способ 2: открытие двойным щелчком по файлу
  • Вопросы и ответы

Открытие DBF в Microsoft Excel

Одним из самых популярных форматов хранения структурируемых данных является DBF. Этот формат отличается универсальностью, то есть, его поддерживают множество систем СУБД и других программ. Его используют не только как элемент для хранения данных, но и как средство для обмена ими между приложениями. Поэтому довольно актуальным становится вопрос открытия файлов с данным расширением в табличном процессоре Excel.

Следует знать, что и в самом формате DBF существует несколько модификаций:

  • dBase II;
  • dBase III;
  • dBase IV;
  • FoxPro и др.

Тип документа тоже влияет на корректность его открытия программами. Но нужно отметить, что Excel поддерживает корректную работу практически со всеми типами файлов DBF.

Следует сказать, что в большинстве случаев Excel справляется с открытием данного формата вполне успешно, то есть, открывает этот документ так же, как данная программа открывала бы, например, свой «родной» формат xls. А вот сохранять файлы в формате DBF стандартными средствами Эксель перестал после версии Excel 2007. Впрочем, это уже тема для отдельного урока.

Урок: Как перевести Excel в DBF

Способ 1: запуск через окно открытия файлов

Одним из самых простых и интуитивно понятных вариантов открытия документов с расширением DBF в Excel является запуск их через окно открытия файлов.

  1. Запускаем программу Excel и переходим во вкладку «Файл».
  2. Переход во вкладку Файл в Microsoft Excel

  3. После попадания в вышеуказанную вкладку щелкаем по пункту «Открыть» в меню, расположенном в левой части окна.
  4. Переход к открытию файла в Microsoft Excel

  5. Открывается стандартное окно открытия документов. Перемещаемся в тот каталог на жестком диске или сменном носителе, где расположен документ, который нужно открыть. В правой нижней части окна в поле переключения расширений файлов выставляем переключатель в позицию «Файлы dBase (*.dbf)» или «Все файлы (*.*)». Это очень важный момент. Многие пользователи не могут открыть файл просто потому, что не выполняют данное требование и элемент с указанным расширением им не виден. После этого документы в формате DBF должны отобразиться в окне, если они присутствуют в данном каталоге. Выделяем документ, который следует запустить, и щелкаем по кнопке «Открыть» в нижнем правом углу окна.
  6. Окно открытия документа в Microsoft Excel

  7. После последнего действия выбранный документ DBF будет запущен в программе Excel на листе.

Документ DBF открыт в Microsoft Excel

Способ 2: открытие двойным щелчком по файлу

Также популярным способом открытия документов является запуск путем двойного щелчка левой кнопкой мыши по соответствующему файлу. Но дело в том, что по умолчанию, если специально не прописывать в системных настройках, программа Эксель не связана с расширением DBF. Поэтому без дополнительных манипуляций таким способом файл открыть не получится. Посмотрим, как это можно сделать.

  1. Итак, делаем двойной щелчок левой кнопкой мыши по тому файлу формата DBF, который желаем открыть.
  2. Двойной клик левой кнопки мыши в Microsoft Excel

  3. Если на данном компьютере в системных настройках формат DBF не связан ни с одной программой, то запустится окошко, которое сообщит, что не удалось открыть файл. В нем будут предложены варианты действий:
    • Поиск соответствий в Интернете;
    • Выбор программы из списка установленных программ.

    Так как подразумевается, что табличный процессор Microsoft Excel у нас уже установлен, то переставляем переключатель во вторую позицию и щелкаем по клавише «OK» в нижней части окна.

    Сообщение о неудачи открыть файл в программе Microsoft Excel

    Lumpics.ru

    Если же данное расширение уже связано с другой программой, но мы хотим запустить его именно в Excel, то поступаем несколько иначе. Кликаем по наименованию документа правой кнопкой мыши. Запускается контекстное меню. Выбираем в нем позицию «Открыть с помощью». Открывается ещё один список. Если в нем имеется наименование «Microsoft Excel», то кликаем по нему, если же вы такое название не найдете, то переходим по пункту «Выбрать программу…».

    Переход к выбору программы для открытия файла DBF

    Есть ещё один вариант. Кликаем по наименованию документа правой кнопкой мыши. В списке, открывшемся после последнего действия, выбираем позицию «Свойства».

    Переход в свойства файла DBF

    В запустившемся окошке «Свойства» перемещаемся во вкладку «Общие», если запуск произошел в какой-то другой вкладке. Около параметра «Приложение» жмем на кнопку «Изменить…».

  4. Окно свойств файла DBF

  5. При выборе любого из трех данных вариантов запускается окно открытия файла. Опять же, если в списке рекомендуемых программ в верхней части окна присутствует наименование «Microsoft Excel», то щелкаем по нему, а в обратном случае жмем на кнопку «Обзор…» в нижней части окна.
  6. Окно выбора программы Windows

  7. В случае последнего действия в директории расположения программ на компьютере открывается окошко «Открыть с помощью…» в виде Проводника. В нем нужно перейти в папку, которая содержит файл запуска программы Эксель. Точный адрес пути к этой папки зависит от версии Excel, которая у вас установлена, а точнее от версии пакета Microsoft Office. Общий шаблон пути будет выглядеть следующим образом:

    C:Program FilesMicrosoft OfficeOffice#

    Вместо символа «#» требуется подставить номер версии вашего офисного продукта. Так для Excel 2010 это будет номер «14», а точный путь к папке будет соответственно выглядеть так:

    C:Program FilesMicrosoft OfficeOffice14

    Для Excel 2007 номер будет «12», для Excel 2013 – «15», для Excel 2016 – «16».

    Итак, перемещаемся в указанную выше директорию и ищем файл с наименованием «EXCEL.EXE». Если у вас в системе не запущено отображение расширений, то его название будет выглядеть просто как «EXCEL». Выделяем данное наименование и жмем на кнопку «Открыть».

  8. Выбор программы для запуска документа в Microsoft Excel

  9. После этого мы автоматически переносимся опять в окно выбора программы. На этот раз наименование «Microsoft Office» тут точно будет отображаться. Если пользователь желает, чтобы данное приложение всегда по умолчанию открывало документы DBF двойным кликом мышки по ним, то нужно удостовериться, что около параметра «Использовать выбранную программу для всех файлов такого типа» стоит галочка. Если же вы планируете только одиночное открытие документа DBF в Excel, а далее собираетесь открывать данный тип файлов в другой программе, то, наоборот, данную галочку следует снять. После того, как все указанные настройки выполнены, жмем на кнопку «OK».
  10. Установка Microsoft Excel программой по умолчанию для открытия файлов DBF

  11. После этого документ DBF будет запущен в программе Excel, и если пользователь выставил галочку в соответствующем месте в окне выбора программы, то теперь файлы данного расширения будут открываться в Экселе автоматически после двойного клика по ним левой кнопкой мыши.

Документ DBF открыт в программе Microsoft Excel

Как видим, открыть файлы DBF в Эксель довольно просто. Но, к сожалению, многие начинающие пользователи путаются и не знают, как это сделать. Например, они не догадываются выставить соответствующий формат в окне открытия документа через интерфейс Эксель. Ещё большую сложность для некоторых юзеров составляет открытие документов DBF двойным щелчком левой кнопки мыши, так как для этого нужно изменить некоторые системные установки через окно выбора программы.

Еще статьи по данной теме:

Помогла ли Вам статья?

Понравилась статья? Поделить с друзьями:
  • Days worked in excel
  • Days to years and months excel
  • Days of the week word search
  • Days of the week word find
  • Days in this month excel