4

xlsxwriter python プラグインを使用して XLSX ファイルを作成しようとしています。この XLSX には、次の 2 つのシートがあります。

  • Analyze : 情報を含むテーブルを含む
  • Stat : いくつかの情報と 2 つの式が含まれています

この2つの式は次のとおりです。

=NBVAL(Analyse!C:C)-1
=NB.SI(Analyse!D:D;"To change")

私の問題は、生成されたファイルを開くときにエラーが発生することです。そして、数式は機能しません。数式を編集して Enter キーを押すだけで機能します。

私のコード:

shInfo    = self.__workbook.add_worksheet("Stat")
shInfo.activate()

information = self.__workbook.add_format({'bg_color': '#BFBFBF',
                                          'font_name': 'Courier New'})

shInfo.write('G3','=NBVAL(Analyse!C:C)-1',information)
shInfo.write('G5','=NB.SI(Analyse!D:D;"To change")',information)

XML エラー レポートを開くと。私はこれを持っています:

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <logFileName>error056160_04.xml</logFileName>
  <summary>Des erreurs ont été détectées dans le fichier « L:\UNMS\InputBEB\Output\UNMSViewer\public_html\Data\XLSX\todo\A6S54300.xlsx »</summary>
  <removedRecords summary="Liste des enregistrements supprimés ci-dessous :">  
    <removedRecord>Enregistrements supprimés: Formule dans la partie /xl/worksheets/sheet2.xml</removedRecord>
    </removedRecords>
</recoveryLog>
4

2 に答える 2

2

問題は、数式関数名がフランス語である可能性がありますが、Excel はそれが英語で保存/記述されることを想定しています。少なくとも XlsxWriter によって書き込まれたファイルでは。

代わりにこれを試してください:

shInfo.write('G3','=COUNTA(Analyse!C:C)-1',information)
shInfo.write('G5','=COUNTIF(Analyse!D:D,"To change")',information)

フランス語版の Excel を使用して保存した小さなサンプル ファイルを送っていただければ、数式の言語を示すために XlsxWriter によって書き込まれたファイルにフラグを設定できるかどうかを確認します。

更新:COUNTIF()式では、 の代わりに米国スタイルのコンマ演算子も使用する必要があります;更新 2 : @gatchan によって提供されたサンプル ファイルに基づいて、ファイルに言語識別子はありません。数式は、保存時に Excel によって英語および米国スタイルのコンマ演算子に変換されます。

于 2013-09-17T15:01:13.193 に答える