14

xlsx ファイルを生成していますが、このプロセス中にすべての数式の値を計算する必要がないようにしたいと考えています。つまり、<v>のセルには 0 を設定 (または省略) し、<f>Excel を開いたときに値を入力させたいと考えています。

1 つの提案は、Calculate起動時にマクロを実行することでしたが、署名されたマクロを使用してこれを実行し、ユーザーへのプロンプトを回避する方法に関する完全なガイドを見つけることができませんでした。xlsx 内のどこかに設定できるフラグの方がはるかに優れています。

編集: Office プログラムを使用して変更を加えるという回答は求めていません。ファイル形式の詳細を探しています。

4

4 に答える 4

14

Python モジュールXlsxWriterは、式の<v>値を 0 に設定し (実際の値が不明な場合)、ファイル内の<calcPr> fullCalcOnLoad属性を true に設定しxl/workbook.xmlます。

<calcPr fullCalcOnLoad="1"/>

これは、私がテストしたすべての Excel と OpenOffice、LibreOffice、Google Docs、および Gnumeric のバージョンで機能します。

機能しないのは、ファイル ビューアーなど、数式の値を再計算できない非スプレッドシート アプリケーションの場合です。

于 2013-08-26T15:02:00.770 に答える
0

XML コンテンツでは、数式を含む各セルのエンティティを単に省略し<v>ます。これにより、Excel のオプションが何であれ、Ms Excel は数式を強制的に実現します。

それ以外の:

  <c r="B2" s="1">
    <f>SUM(A1:C1)</f>
    <v>6</v>
  </c>

もつ:

  <c r="B2" s="1">
    <f>SUM(A1:C1)</f>
  </c>

既に与えられた XML コンテンツで数式を実現する必要がある場合は、各<c>エンティティを検索する小さなパーサーを簡単にコーディングできます。<c>エンティティにエンティティがある場合は、<f>そのエンティティを削除し<v>ます。

于 2013-08-21T14:01:33.440 に答える