Ubuntu用DBFビューア


9

Ubuntu 15でdbfファイルを開く必要がありますが、LibreOfficeでこれを実行できます。しかし、私は得ています

一般的なエラー。一般的な入出力エラー。

私を助けることができるツールまたは組み込みのソフトウェアツールはありますか?


Windowsで開いてもかまいません。
Rinzwind、2015年

1
@Rinzwindええ、それで「他のシステム/ソフトウェアで開こうとしましたか?」などの質問に答えるようになります。
Daria

それが有効な質問であっても、それはUbuntuのみです。また、ユーザーがWindowsをインストールすることは想定していません;-)
Rinzwind

4
@Rinzwind実際には、ファイルが(おそらく)有効であることを示しています。
クトゥルフ

回答:


13

LibreOffice Wikiによると、.dbfLibreOffice Baseでファイルを開くことができるはずです。

それでもこの問題が発生する場合は、LibreOfficeを再インストールしてください。

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

を使用dbviewして.dbfファイルを開くこともできます(LibreOffice Baseよりも使用が難しい場合があります)。

sudo apt-get install dbview

の詳細については、マンページを参照してくださいdbview


2
すごい!私はLibreOffice Baseを持っていなかったと思いますが、再インストールするとそれがもたらされます)また、dbviewはプレビューdbfファイルを簡単に作成できる優れたコンソール(私が理解したとおり)アプリです。ありがとうございました。
Daria

3
LibreOffice BaseはデフォルトでUbuntuにインストールされていないため、実際にインストールされていることを確認することから始めることをお勧めします。
2016

3

小さな.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

.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";
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.