Как создать отформатированный отчет из электронной таблицы LibreOffice Calc?

У меня есть очень простая электронная таблица 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 ), поэтому тривиальный ответ, вероятно, будет "да", но я никогда не использовал их, поэтому мне потребуется некоторое руководство (я даже не знаю, как использовать такую ​​​​вещь).


person ZioByte    schedule 31.08.2016    source источник


Ответы (1)


Есть много разных способов сделать это. Одна идея состоит в том, чтобы перейти к File -> Save As и сохранить как тип CSV. В настройках фильтра отметьте Quote all text cells, чтобы было проще работать с новыми строками.

Затем напишите скрипт, использующий модуль csv для Python, Например:

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, вместо этого вы можете написать макрос. Возможно, было бы проще написать его на python, чем на Basic, так как обработка файлов и манипулирование строками в Basic могут быть затруднены.

person Jim K    schedule 31.08.2016