Средство просмотра DBF для Ubuntu

Я должен открыть dbf файлы на своей Ubuntu 15 и поскольку я нашел, что LibreOffice может делать это. Но я добираюсь

Общая Ошибка. Общая ошибка ввода/вывода.

Есть ли КАКОЙ-ЛИБО инструмент или встроен некоторый программный инструмент, который может помочь мне?

9
задан 20 October 2015 в 00:10

3 ответа

Согласно LibreOffice Wiki Вам необходимо открыться .dbf файлы Основой LibreOffice.

, Если Вы все еще сталкиваетесь с этой проблемой, повторно установите LibreOffice:

sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install libreoffice
<час>

Вы можете также использовать dbview, чтобы открыться .dbf файлы (который может быть более трудно использовать, чем Основа LibreOffice):

sudo apt-get install dbview

Относятся к manpage для получения дополнительной информации о dbview.

11
ответ дан 23 November 2019 в 04:54

Для очень простого редактирования маленьких .dbf файлов можно также использовать Редактор GTK DBF

Для установки его в Ubuntu 12.04, я сначала должен был установить эту зависимость:

sudo apt-get install libglade2-0:i386

Затем я мог установить загруженный .deb файл с

sudo dpkg -i Downloads/gtkdbfeditor_1.0.4-7_i386.deb

Обновление:

В Ubuntu 16.04, с установкой по умолчанию LibreOffice, я имел к также

sudo apt install libreoffice-base

Затем .dbf файлы может быть открыт в LibreOffice Calc и также сохранен как .dbf.

2
ответ дан 23 November 2019 в 04:54

Я нашел, что лучший способ иметь дело с .dbf файлами состоит в том, чтобы использовать PHP для преобразования их в .csv файлы:

<?php

set_time_limit( 24192000 );
ini_set( 'memory_limit', '-1' );

$files = glob( '/media/d/Data2/files/*.DBF' );
foreach( $files as $file )
{
    echo "Processing: $file\n";
    $fileParts = explode( '/', $file );
    $endPart = $fileParts[key( array_slice( $fileParts, -1, 1, true ) )];
    $csvFile = preg_replace( '~\.[a-z]+$~i', '.csv', $endPart );

    if( !$dbf = dbase_open( $file, 0 ) ) die( "Could not connect to: $file" );
    $num_rec = dbase_numrecords( $dbf );
    $num_fields = dbase_numfields( $dbf );

    $fields = array();
    $out = '';

    for( $i = 1; $i <= $num_rec; $i++ )
    {
        $row = @dbase_get_record_with_names( $dbf, $i );
        $firstKey = key( array_slice( $row, 0, 1, true ) );
        foreach( $row as $key => $val )
        {
            if( $key == 'deleted' ) continue;
            if( $firstKey != $key ) $out .= ';';
            $out .= trim( $val );
        }
        $out .= "\n";
    }

    file_put_contents( $csvFile, $out );
}

?>

Затем MySQL использования для импорта CSV:

LOAD DATA INFILE "/media/d/Data2/files/ZACATECAS.csv" INTO TABLE tbl FIELDS TERMINATED BY ";" ENCLOSED BY '"' LINES TERMINATED BY "\n";
2
ответ дан 23 November 2019 в 04:54

Другие вопросы по тегам:

Похожие вопросы: