0

列ヘッダーと列 (セルは複数行にすることができます) を持つ非常に単純な LibreOffice Calc スプレッドシートがあります。

| id | Prio | Domain | Comment        | ... |
|----|------|--------|----------------|-----|
|  1 |    A | Foo    | Something      |     |
|----|------|--------|----------------|-----|
|  2 |    A | Bar    | Something else |     |
|    |      |        | Possibly on    |     |
|    |      |        | multiple lines |     |
|----|------|--------|----------------|-----|
|  1 |    C | Baz    | Something else |     |

次のようなものを含むプレーンテキストファイルを(半)自動化された方法で取得したいと思います。

id:      1
Prio:    A
Domain:  Foo
Comment: Something
...

id:      2
Prio:    A
Domain:  Bar
Comment: Something else
         Possibly on
         multiple lines
...

id:      3
Prio:    C
Domain:  Baz
Comment: Something else
...

これはどういうわけか可能ですか?私は LO マクロ機能 (例: this ) を認識しているので、些細な答えはおそらく「はい」ですが、それらを使用したことがないため、何らかのガイダンスが必要です (そのようなものの使用方法さえ知りません)。

4

1 に答える 1

0

これを行うには、さまざまな方法があります。1 つのアイデアはFile -> Save As、タイプ CSV に移動して保存することです。フィルタ設定でQuote all text cells改行を扱いやすくする場合はチェックを入れてください。

次に、 python csv モジュールを使用するスクリプトを作成します。たとえば、次のようになります。

import csv
with open('Untitled 1.csv') as csvfile:
    spamreader = csv.reader(csvfile, dialect='excel',)
    for row in spamreader:
        print("row: ", end="")
        print(', '.join(row))

この手順を回避するにはSave As、代わりにマクロを記述します。Basicではファイル処理や文字列操作が難しいため、 Basicよりもpythonで記述した方が簡単かもしれません。

于 2016-08-31T17:49:51.427 に答える