【问题标题】:Python xlsxwriter VLOOKUP in German Excel德语 Excel 中的 Python xlsxwriter VLOOKUP
【发布时间】:2022-08-02 19:05:04
【问题描述】:

我花了几个小时让我的VLOOKUP 工作。

这是之前工作的VLOOKUP 的示例。

=SVERWEIS(E3;Tabelle2!$C$1:$ZZ$5000;117;0)

我使用Python XLSWriter 生成了 xlsx 文件。 使用以下选项:

        worksheet.protect(
            # password=PASSWORD_BLATTSCHUTZ,
            options={
                \"objects\": False,
                \"scenarios\": False,
                \"format_cells\": True,
                \"format_columns\": True,
                \"format_rows\": False,
                \"insert_columns\": False,
                \"insert_rows\": False,
                \"insert_hyperlinks\": True,
                \"delete_columns\": False,
                \"delete_rows\": False,
                \"select_locked_cells\": True,
                \"sort\": True,
                \"autofilter\": True,
                \"pivot_tables\": False,
                \"select_unlocked_cells\": True,
            }
        )

标签: python excel excel-formula xlsxwriter


【解决方案1】:

您将需要使用英文版本的函数名称和逗号而不是分号。

这在 XlsxWriter 文档的 Working with Formulas 部分中的 Non US Excel functions and syntax 小节中进行了解释:

Excel 以美国英语版本的格式存储公式,而与最终用户版本的 Excel 的语言或区域设置无关。因此,所有使用 XlsxWriter 编写的公式函数名称都必须是英文:

    worksheet.write_formula('A1', '=SUM(1, 2, 3)')    # OK
    worksheet.write_formula('A2', '=SOMME(1, 2, 3)')  # French. Error on load.

此外,公式必须使用逗号(不是分号)的美式分隔符/范围运算符编写。因此,具有多个值的公式应编写如下:

    worksheet.write_formula('A1', '=SUM(1, 2, 3)')   # OK
    worksheet.write_formula('A2', '=SUM(1; 2; 3)')   # Semi-colon. Error on load.

如果您有非英文版的 Excel,可以使用下面的多语种formula translator 来帮助您转换公式。它还可以用逗号代替分号。

使用上一段中link 中的翻译器,您应该使用的公式看起来是:

=VLOOKUP(E3,Tabelle2!$C$1:$ZZ$5000,117,0)

这假设您有一张名为“Tabelle2”的工作表。如果不改变它。

【讨论】:

    【解决方案2】:

    问题不在于德语或英语 excel 版本。

    单元格的类型必须是“标准”而不是“文本”或其他任何内容。 否则它不会检测到您的 excel 命令。

    为此,您只需要使用以下选项覆盖任何单元格:

    text_format = workbook.add_format()
    text_format.set_num_format("@")
    
    worksheet.write(i + STARTROW, j, content, text_format)...
    
    

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      相关资源
      最近更新 更多