Saya perlu membuka file dbf di Ubuntu 15 saya dan saya menemukan LibreOffice dapat melakukan ini. Tapi saya mengerti
Kesalahan Umum. Kesalahan input / output umum.
Apakah ada alat APA PUN atau alat perangkat lunak bawaan yang dapat membantu saya?
Saya perlu membuka file dbf di Ubuntu 15 saya dan saya menemukan LibreOffice dapat melakukan ini. Tapi saya mengerti
Kesalahan Umum. Kesalahan input / output umum.
Apakah ada alat APA PUN atau alat perangkat lunak bawaan yang dapat membantu saya?
Jawaban:
Menurut LibreOffice Wiki Anda harus dapat membuka .dbf
file dengan LibreOffice Base.
Jika Anda masih mengalami masalah ini, instal ulang LibreOffice:
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install libreoffice
Anda juga dapat menggunakan dbview
untuk membuka .dbf
file (yang mungkin lebih sulit untuk digunakan daripada LibreOffice Base):
sudo apt-get install dbview
Rujuk ke halaman manual untuk informasi lebih lanjut tentang dbview
.
Untuk mengedit file .dbf kecil yang sangat sederhana, Anda juga dapat menggunakan GTK DBF Editor
Untuk menginstalnya di Ubuntu 12.04, saya pertama-tama harus menginstal dependensi ini:
sudo apt-get install libglade2-0:i386
Kemudian saya dapat menginstal file .deb yang diunduh dengan
sudo dpkg -i Downloads/gtkdbfeditor_1.0.4-7_i386.deb
Memperbarui:
Di Ubuntu 16.04, dengan instalasi default LibreOffice, saya juga harus
sudo apt install libreoffice-base
Kemudian, file .dbf dapat dibuka di LibreOffice Calc, dan juga disimpan sebagai .dbf.
Saya telah menemukan cara terbaik untuk menangani file .dbf adalah dengan menggunakan PHP untuk mengonversinya menjadi file .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 );
}
?>
Kemudian gunakan MySQL untuk mengimpor CSV:
LOAD DATA INFILE "/media/d/Data2/files/ZACATECAS.csv" INTO TABLE tbl FIELDS TERMINATED BY ";" ENCLOSED BY '"' LINES TERMINATED BY "\n";