Excelテーブルを太字のテキストで.docのCSVファイルに分割するには?

Excelテーブルを太字のテキストで.docのCSVファイルに分割するには?

777個の.docファイルがあり、各ファイルには次のような大きなExcelテーブルが含まれています。ここ図1のようにここでは、1 つの .doc ファイルのみが考慮されます。 .docファイルのExcelテーブルをUnixプログラミング言語および/またはスクリプトを介してCSVファイルに分割したいと思います。 Microsoftファイル形式をCSVファイルとして処理する方法が見つかりません。擬似コード:

  1. スレッドから拡張された.docファイルからExcelテーブルを抽出するUnixツールを使用して多くの.docテキスト+テーブル要素をCSVに抽出するには?
  2. Excelテーブル(ここではCSVに変換されている可能性があります)を規則に従って別々の.CSVファイルに分割します。

    新しい太字は新しいテーブルを表します。新しいCSVファイルです。

  3. 暗黙的な熱の適用場所(下/上)と日付(dd.mm.yyyy)は、個々のCSVファイルごとに.docファイルの最初の2行にあります。使用時間熱(朝/夕/夕)。

ルール別にターゲットファイルとその列を検索する

  1. Assistants.csv - 名前、日付、場所、時間
  2. Other.Assistants.csv - 名前、日付、場所、時刻
  3. General.csv - イベント、日付、場所、時間

図1 .docファイルのExcelテーブルの例

ここに画像の説明を入力してください。

オペレーティングシステム:Linux Debian Stretch 9など
データ:.odtファイルここ

ベストアンサー1

いいですね…


ミニチュートリアルスタート


したがって、毎日のレポートを取得するためにpostgresqlデータベースを作成する方法のいくつかのヒントは次のとおりです。

まず、まだpostgresqlをインストールしていない場合:

$sudo apt-get install postgresql

第二に、postgresqlを初めて使用する場合、Debianのpostgresqlのデフォルトインストールは、すべてのユーザーがピア認証を介してパスワードなしでログインできるように設定されます。ただし、ユーザーが所有するデータベースを作成する必要があります。

実行方法は次のとおりです。

  • 特権シェルを入力してください

    $ sudo -s

  • ポストグレススーパーユーザーになる

    #スポスト

  • ユーザーが遊べるデータベースの作成

    postgres$createb データベース名 -O ユーザー

  • その後、2回終了してユーザーモードに戻ります。

    ポストグレス$終了

    #出口

    $

  • postgresqlを使用する準備ができている必要があります。

テーブルを作成するためにインポートできるSQLファイルを作成しました。以下をコピーして同様の場所に貼り付けることができます。table.sql

CREATE TYPE shifts AS ENUM ('morning','evening','night');
CREATE TYPE titles AS ENUM ('assistant','other_assistant');

CREATE TABLE assistants (id integer, name char(20), title titles);
CREATE TABLE disposition (id integer, name char(20), shift shifts, day date, comments text);
CREATE TABLE schedule (id integer, name1 char(2), name2 char(20), name3 char(20), name4 char(20), name5 char(20), shift shifts, day date);

その後、テーブルをインポートします。

psql
user=>\i tables.sql

毎日のレポートを3つの別々のCSVファイルに解析する場合は、\copyコマンドを使用して各ファイルを各個別のテーブルに直接インポートできます。

このような:

\copy assistants FROM '~/assistants.csv' WITH (FORMAT csv);
\copy dispositions FROM '~/dispositions.csv' WITH (FORMAT csv);
\copy schedule FROM '~/schedule.csv' WITH (FORMAT csv);

これにより、テーブルにデータが入力され、今日コメントを残した人が誰であるか、そのコメントが何であるかを調べるなどのクエリを実行できます。

このような:

 select * from disposition where day = 'TODAY';

次の出力が生成されることがあります。

 id |         name         |  shift  |    day     | comments 
----+----------------------+---------+------------+----------
    | Vir                  | morning | 2017-10-23 | Peaceful

ミニチュートリアルエンド


役に立ちますか?それとも、私があまりにも深く考えているのか、あなたを混乱させているのでしょうか?

おすすめ記事