2012-04-26 22 views
1

私はLibreOfficeのスプレッドシート(​​data.ods)に約500行のカンマ区切り値を30列に入れました。最初の行には列見出しが含まれます。LibreOfficeを閉じずにPythonスクリプトを使用して以前に開いたLibreOfficeのプレースシートを更新する

Data.odsは、スクリプトによって1日を通して定期的に更新されます。次に、別のスプレッドシート(​​main.ods)のdata.odsにあるセルへのリンクがいくつかあります。

1)Pythonスクリプトを使用してdata.odsを生成します。

私は現在、次のやっています。

2)Data.odsを開いて、LibreOfficeがカンマ区切りのテキストインポートを実行して行を移入するようにします。

3)main.odsを開きます(自動的にリンクが更新されます)。

data.odsを閉じた後でも、LibreOfficeにファイルのロックがまだ残っているように見えるので、main.odsを開いたままにすることはできません。私のスクリプトでdata.odsを編集することはできません。すべてのLibreOfficeを閉じます(私にはmain.odsを閉じる必要があります)。

私は、次の操作を実行したいと思います:

1)main.odsが開いています。

2)スクリプトを介してdata.odsを生成します。

3)編集...リンク...更新値を使用して、更新された値をmain.odsにインポートします。

4)main.odsを開いたままにします。

5)スクリプトを使用して新しいdata.odsを生成します。

6)編集...リンク...更新値を使用して、更新された値をmain.odsにインポートします。

7)必要に応じて繰り返します。

+0

あなたがこれまでに持っているものを示し、問題のある場所を教えてください。それ以外の場合は、コードを書くように頼んでいるようです。それは愚かであろう。 – kindall

+0

LibreOfficeを扱い、スクリプトを作成している人にとっては疑問がはっきりしています。それはコードを要求することではなく、どのパスを使うかを知ることです。 – jsbueno

答えて

0

ご存じかもしれませんが、Open/Libre Offie〜Pythonスクリプトを扱う方法があります。独自のPythonインタプリタを同梱しています。

問題は、それを行う方法に関するドキュメントがひどいことです。しかし、その機能の1つは、(スプレッドシートのように)インターフェイス上で開いているドキュメントにアクセスするためのPythonスクリプトを外部に置くことです。それに対する値。

これは遅いですが、うまくいきます。あなたが数百行しか話していないので、速度は重要ではありません。

さて、私はそのためのドキュメントを見つけて、あなたに始めるする場所のリンクを取得してみましょう: http://www.openoffice.org/udk/python/python-bridge.html#modes

あなたはPythonの対話プロンプトで、そこにサンプルコードを貼り付けた場合は(する必要がありますPythonはLibreOfficeに沿ってインストールされています)、Pythonのdirで利用可能なメソッドと属性をイントロスペクトし、スクリプトからセルの内容を編集するメソッド呼び出しを見つけることができます。

+0

ありがとう、それは私が取るための正しい道のように思えます。私はそれ以上の問題があれば私は報告する。 – quiteausername

+0

ファイルの使用...基礎となるデータスプレッドシートがCSVの場合、リロードは簡単なソリューションです。 – quiteausername

+0

Quiteausernameの反応は完全に私には分かりませんでした。研究の後、私はこの方法がこの状況に完璧であることを発見しました。 http://blog.louic.nl/?p=622 Pythonはcsvにエクスポートされ、csvはodsファイル内のシートにリンクされ、別のシートがマークされてリンクされたシートからデータが引き出されます。リロードはトリガされる必要があり、複数の簡単な方法があります。 – Permafacture

0

jsbuenoが言及しているように、unoモジュールを使用することで、Pythonが開いている間にその文書を手動で編集することはできません。

文書が現在ゴミになっていると約束しました。私はwww.documenthacker.com/http://documenthacker.wordpress.comに何かしようとしていますが、Writerに焦点を当てています。プログラムは似ていますが、ドキュメントを開く、ドキュメントをナビゲートするなどの方法が便利です - PythonでLibreOffice/OpenOfficeをプログラミングすると、次の問題を解決するのがかなり簡単になります。

インターネット上では、PythonよりもJavaのほうが多くの例がありますが、残念ながら例の間でどのように翻訳するのかは分かりません。良いことは、Pythonの方法は一般的にははるかに簡単だということです。

関連する問題