Ubuntu için DBF görüntüleyici


9

Benim Ubuntu 15 dbf dosyaları açmak gerekiyor ve LibreOffice bunu yapabilir bulundu. Ama alıyorum

Genel hata. Genel giriş / çıkış hatası.

Bana yardımcı olabilecek herhangi bir araç veya yerleşik bir yazılım aracı var mı?


Windows'ta açılıp açılmayacağı umurumda değil.
Rinzwind

1
@Rinzwind Evet, bu da "Başka bir sistemde / yazılımda açmaya çalıştınız mı?"
Daria

Bu geçerli bir soru olsa bile sadece Ubuntu olacaktır . Ve bir kullanıcının Windows kurulu olmasını beklemiyoruz ;-)
Rinzwind

4
@Rinzwind Aslında dosyanın (büyük olasılıkla) geçerli olduğunu gösterir.
Cthulhu

Yanıtlar:


13

LibreOffice Wiki'ye göre, .dbfdosyaları LibreOffice Base ile açabilmelisiniz .

Bu sorunla karşılaşmaya devam ediyorsanız LibreOffice'i yeniden yükleyin:

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

Dosyaları dbviewaçmak için de kullanabilirsiniz .dbf(LibreOffice Base'den daha zor olabilir):

sudo apt-get install dbview

Hakkında daha fazla bilgi için kılavuz sayfasına bakınız dbview.


2
Harika! Ben LibreOffice Base ve yeniden yükleme getirmek yoktu sanırım) Ayrıca dbview kolayca önizleme dbf dosyasını yapabilirsiniz iyi bir konsol (doğru anladım) app. Teşekkür ederim.
Daria

3
LibreOffice Base, Ubuntu'da varsayılan olarak yüklenmediğinden, gerçekte olup olmadığını kontrol ederek başlamak isteyebilirsiniz.
leo

3

Küçük .dbf dosyalarının çok basit bir şekilde düzenlenmesi için GTK DBF Editör'ü de kullanabilirsiniz.

Ubuntu 12.04'e kurmak için önce bu bağımlılığı yüklemem gerekiyordu:

sudo apt-get install libglade2-0:i386

Sonra indirilen .deb dosyasını

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

Güncelleme:

Ubuntu 16.04'te, LibreOffice'in varsayılan yüklemesi ile,

sudo apt install libreoffice-base

Ardından, .dbf dosyaları LibreOffice Calc içinde açılabilir ve .dbf olarak kaydedilebilir.


2

.Dbf dosyaları ile başa çıkmak için en iyi yolu bulduk onları .csv dosyalarına dönüştürmek için PHP kullanmaktır:

<?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 );
}

?>

Ardından CSV'yi içe aktarmak için MySQL kullanın:

LOAD DATA INFILE "/media/d/Data2/files/ZACATECAS.csv" INTO TABLE tbl FIELDS TERMINATED BY ";" ENCLOSED BY '"' LINES TERMINATED BY "\n";
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.