Przeglądarka DBF dla Ubuntu

9

Muszę otworzyć pliki dbf na moim Ubuntu 15 i jak znalazłem LibreOffice może to zrobić. Ale dostaję

Błąd ogólny. Ogólny błąd wejścia / wyjścia.

Czy istnieje JAKIEKOLWIEK narzędzie lub wbudowane narzędzie, które może mi pomóc?

Daria
źródło
Nie obchodzi nas, czy otworzy się w systemie Windows.
Rinzwind
1
@Rinzwind Tak, a to sprawi, że odpowiem na takie pytania, jak: „Czy próbowałeś otworzyć go w innym systemie / oprogramowaniu?”
Daria,
Nawet jeśli jest to prawidłowe pytanie, będzie to tylko Ubuntu . I nie oczekujemy, że użytkownik zainstaluje system Windows ;-)
Rinzwind,
4
@Rinzwind Faktycznie pokazuje, że plik jest (prawdopodobnie) prawidłowy.
Cthulhu,

Odpowiedzi:

13

Według Wiki LibreOffice powinieneś móc otwierać .dbfpliki w LibreOffice Base.

Jeśli nadal występuje ten problem, zainstaluj ponownie LibreOffice:

sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install libreoffice

Możesz także użyć dbviewdo otwarcia .dbfplików (co może być trudniejsze w użyciu niż LibreOffice Base):

sudo apt-get install dbview

Zapoznaj się z podręcznika , aby uzyskać więcej informacji na temat dbview.

hg8
źródło
2
Świetny! Wydaje mi się, że nie miałem LibreOffice Base i ponowna instalacja przynosi także) dbview jest dobrą konsolową (jak dobrze to zrobiłem) aplikacją, która może łatwo zrobić podgląd pliku dbf. Dziękuję Ci.
Daria,
3
Ponieważ LibreOffice Base nie jest domyślnie instalowany w Ubuntu, możesz zacząć od sprawdzenia, czy tak naprawdę jest.
leo
3

Do bardzo prostej edycji małych plików .dbf można również użyć edytora DBK GTK

Aby zainstalować go w Ubuntu 12.04, najpierw musiałem zainstalować tę zależność:

sudo apt-get install libglade2-0:i386

Następnie mógłbym zainstalować pobrany plik .deb za pomocą

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

Aktualizacja:

W Ubuntu 16.04, z domyślną instalacją LibreOffice, musiałem również

sudo apt install libreoffice-base

Następnie pliki .dbf można otworzyć w LibreOffice Calc, a także zapisać jako .dbf.

mivk
źródło
2

Znalazłem najlepszy sposób radzenia sobie z plikami .dbf, używając PHP do konwersji ich na pliki .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 );
}

?>

Następnie użyj MySQL, aby zaimportować CSV:

LOAD DATA INFILE "/media/d/Data2/files/ZACATECAS.csv" INTO TABLE tbl FIELDS TERMINATED BY ";" ENCLOSED BY '"' LINES TERMINATED BY "\n";
Kohjah Breese
źródło