1

数値の通貨変換と文字列の書式設定を行う Python クラスがあります。多態的な入力を受け取りますが、文字列化された数値のみを吐き出します。これらの文字列化された数値を Python の LibreOffice Calc に簡単にプッシュできます。

stringifiednumber = str("1.01")
cell_a1 = sheet1.getCellRange("A1")
cell_a1.String = stringifiednumber

Calc に組み込まれている通貨形式は文字列化された数値で問題なく機能するため、これは実際にはうまく機能します。

機能しないのは数式です。または、機能しません。呼び出しSUM(A1:A2)では、文字列化された A1 は表示されません。回避策があります (遅れて申し訳ありません。正確には忘れてしまいますが、:) に似ています=SUMRECORD(VALUE(A1:A2))

私が理解しているように、各セルには数値、文字列、および数式のメモリ位置があります。VALUE数式は、メモリの場所にのみ作用します。

スプレッドシート UI を使用して、コピー中にセル タイプを別のセル タイプに変換できます。これを行うには、次の式を A2 に入れるだけで、次のように変換STRING(A1)されVALUE( A2)ます。

# formula placed in A2

    =VALUE(A1)

しかし、それはあるセルを別のセルにコピーすることによってのみ機能します。明らかに、コピー中に変換を行っているスプレッドシート内に内部再キャスト機能があります。

私がやりたいことは、文字列化された数値をスプレッドシートに書き込み(上記のように)、スプレッドシートのネイティブ再キャスト関数を Python から呼び出して、VALUE(A1) が STRING(A1) から再キャストされるようにすることです。

再キャスト関数が何であるかを知っていれば、文字列を書き込むたびにそれを呼び出すことができます。これにより、ユーザーが期待するように UI のマクロが動作します。

あなたの答えが「Python側で型変換を行う」である場合、私はすでにそれを検討しており、それは私が探している解決策ではありません.

4

1 に答える 1