CSVファイルを開き、スプレッドシートに直接移動する

CSVファイルを開き、スプレッドシートに直接移動する

私のソフトウェアの一部は、さまざまなファイル形式を開き、表示するさまざまなコマンドを実行します。たとえば、atrilPDFとPNGを使用しますeom
しかし、CSVファイルに小さな問題があります。開くことはできますが、インポートsoffice –calc <filepath>ステップを経るたびに。
一貫した形式を含める必要がある唯一の区切り文字はコンマだけであるため、ユーザーの問題のリスクを回避するためにこれを回避する方法はありますか,

よろしくお願いします。

答え1

インポートをスキップする方法は、ファイルをインポートせずに読み取れる形式に変換することです。たとえば、次のようになります。

soffice --headless --convert-to ods --outdir /tmp tblIssues.csv
soffice --view /tmp/tblIssues.ods
rm /tmp/tblIssues.ods

これにより、ファイルがtblIssues.csvODSスプレッドシートに変換されて保存され、/tmpLibreofficeで開きます。完了すると、変換されたファイルが削除されます(オプション)。

この--viewオプションは、ファイルを読み取り専用で開き、編集に必要なGUI要素を非表示にして、LibreOfficeをビューアとしてより便利にします。

PDF()などの他の形式を使用して--convert-to pdfから、他のビューアを使用することもできますatril

libreoffice Convertコマンドは、インポーターでユーザーが最後に使用した設定を使用することもあるため、,それ以外の区切り記号を有効にすると機能しない可能性があることに注意してください。

または、次のようにコマンドを変更できます。

  • 隠された出力:

    COMMAND > /dev/null 2>&1
    
  • 端子から分離:

    COMMAND & disown
    

答え2

  1. unoconvのインストール(一度だけ)

    • Ubuntuで実行sudo apt-get install unoconv
    • RHL/CentOSで実行sudo yum install unoconv
  2. コマンドラインまたはバッチモードで変換(非対話型)

    • unoconv -f pdf /pathto/file.csv /pathto/file.pdf 2>/dev/null

それだけです!

メモ:

変換が失敗したかのように「見える」エラーが発生するため、stderrを/ dev / nullにパイピングしていますが、実際には成功しました。unoconv -f csv /tmp/this.csv /tmp/this.pdfエラー出力を実行すると、次のようになります。

unoconv: UnoException during export phase: Unable to store document to file:///tmp/this.pdf (ErrCode 19468)

しかし、ファイルは実際には/tmp/this.pdfに作成され、PDFビューアでファイルが完璧であることを確認しました。

理由はわかりませんが、実行中のリスナーがないため、エラーが発生したと推測されます。おそらくここの他の誰かがこの問題を解決するでしょう;-)

とにかく、変換で終了0を返す必要がある場合(PuppetやChefが必要な場合など)、次のように変換を実行してください。

unoconv -f pdf /pathto/file.csv /pathto/file.pdf 2>/dev/null || /bin/true

最後に、unoconv csv変換は基本的に「カンマで区切られています。これは幸運にも機能します。異なる区切り記号および/または複数の区切り記号を使用するには、マニュアルページを読み、インポートフィルタオプションを確認してください。

関連情報