Libreoffice-файлы редактирования из командной строки

Я хочу добавить строки к libreoffice calc таблица из командной строки. Но я понятия не имею как.
Я просто выяснил, как запустить libreoffice с командной строки.

Например, что я ищу: - test.ods-file прежде

Name      Text
Hans      Bla
Christian BlaBlub

Я вхожу...

ubuntu> [a command -insert] Alf|test -file=test.ods

так, чтобы "Alf" и "тест" были добавлены как следующая строка в таблице.
- test.ods-file после:

Name      Text
Hans      Bla
Christian BlaBlub
Alf       test
7
задан 26 October 2016 в 04:20

1 ответ

.ods архив. Таким образом, необходимо будет извлечь архив.

От документация :

структура XML-файла

Документы в формате файла OpenDocument хранятся, поскольку сжатая zip архивирует, которые содержат XML-файлы. Для просмотра этих XML-файлов можно открыть файл OpenDocument с разархивировать программой. Следующие файлы и каталоги содержатся в файлах OpenDocument:

  • текстовое содержание документа расположено в content.xml.

, Таким образом, это не столь просто как

[a command -insert] Alf|test -file=test.ods

, так как также необходимо вставить части XML.

<час>

enter image description here

$ cd ~/tmp/
$ unzip ../test.ods 
Archive:  test.ods
 extracting: mimetype                
 extracting: Thumbnails/thumbnail.png  
  inflating: settings.xml            
  inflating: content.xml             
  inflating: meta.xml                
  inflating: styles.xml              
  inflating: manifest.rdf            
   creating: Configurations2/images/Bitmaps/
   creating: Configurations2/toolpanel/
   creating: Configurations2/progressbar/
  inflating: Configurations2/accelerator/current.xml  
   creating: Configurations2/floater/
   creating: Configurations2/statusbar/
   creating: Configurations2/toolbar/
   creating: Configurations2/popupmenu/
   creating: Configurations2/menubar/
  inflating: META-INF/manifest.xml   

при рассмотрении content.xml и Вы хотите добавить новую строку ниже последней, необходимо было бы добавить что-то вроде этого...

<table:table-row table:style-name="ro1">
<table:table-cell office:value-type="string" calcext:value-type="string"><text:p>a2a2a2</text:p>
</table:table-cell><table:table-cell office:value-type="string" calcext:value-type="string">
<text:p>b2b2b2</text:p>
</table:table-cell></table:table-row>

прежде

<table:named-expressions/>

и затем архивируют файлы снова (zip -r ../test2.ods . из каталога с файлами).

Результат:

enter image description here

<час>

Для редактирования файла из командной строки я использовал эту команду. Я поместил пример в ~ / Загрузки и сделал tmp/там для тестирования. Все команды использовали для этого:

cd ~/Downloads/tmp/
unzip ../test.ods 
sed 's#</table:table><table:named-expressions/>#<table:table-row table:style-name="ro1"><table:table-cell office:value-type="string" calcext:value-type="string"><text:p>a3a3a3</text:p></table:table-cell><table:table-cell office:value-type="string" calcext:value-type="string"><text:p>b3b3b3</text:p></table:table-cell></table:table-row>&#' content.xml > content2.xml 
mv content2.xml content.xml
zip -r ../test2.ods .

Все, что необходимо сделать, заменить сегменты текста собственным.

<час>

Более новая любезность версии Terdon (это использует переменные для создания его лучше читаемым):

$ from="</table:table><table:named-expressions/>"
$ to="<table:table-row table:style-name="ro1"><table:table-cell office:value-type="string" calcext:value-type="string"><text:p>a3a3a3</text:p></table:table-cell><table:tab‌​le-cell office:value-type="string" calcext:value-type="string"><text:p>b3b3b3</text:p></table:table-cell></table:ta‌​ble-row>"
$ sed "s#$from#$to$from#" content.xml

"#" является разделителем. Если у Вас есть "#" в тексте, используют что-то еще.

10
ответ дан 23 November 2019 в 06:26

Другие вопросы по тегам:

Похожие вопросы: