Ubuntu 的 DBF 查看器

Ubuntu 的 DBF 查看器

我需要在 Ubuntu 15 上打开 dbf 文件,我发现 LibreOffice 可以做到这一点。但我得到了

一般错误。一般输入/输出错误。

有没有什么工具或内置软件工具可以帮助我?

答案1

根据LibreOffice 维基您应该能够.dbf使用 LibreOffice 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

对于非常简单的小型 .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

然后,可以在 LibreOffice Calc 中打开 .dbf 文件,并将其保存为 .dbf。

答案3

我发现处理 .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";

相关内容