우분투 용 DBF 뷰어


9

Ubuntu 15에서 dbf 파일을 열어야하며 LibreOffice에서이 작업을 수행 할 수 있습니다. 하지만 점점

일반 오류. 일반 입출력 오류.

나를 도울 수있는 도구 나 내장 소프트웨어 도구가 있습니까?


Windows에서 열리면 상관 없습니다.
Rinzwind

1
@Rinzwind 그래, 그러면 "다른 시스템 / 소프트웨어에서 열었습니까?"와 같은 질문에 대답하게됩니다.
Daria

그것이 유효한 질문 이더라도 우분투 일 것입니다. 그리고 우리는 사용자가 Windows를 설치할 것으로 기대하지 않습니다 ;-)
Rinzwind

4
@Rinzwind 실제로 파일이 유효한지 보여줍니다.
Cthulhu

답변:


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와 자료보다 사용하기 어렵게 될 수있는) 파일 :

sudo apt-get install dbview

에 대한 자세한 내용 은 맨 페이지 를 참조하십시오 dbview.


2
큰! 나는 LibreOffice Base가 없어서 다시 설치해야한다고 생각합니다.) 또한 dbview는 미리보기 dbf 파일을 쉽게 만들 수있는 좋은 콘솔 응용 프로그램입니다. 감사합니다.
Daria

3
Ubuntu에는 LibreOffice Base가 기본적으로 설치되어 있지 않으므로 실제로 설치되어 있는지 확인하여 시작할 수 있습니다.
leo

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

그런 다음 LibreOffice Calc에서 .dbf 파일을 열고 .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.