write type num_format excelwriter example engine create color python excel-formula xlsx xlsxwriter

type - xlsxwriter python format



`write_formula` en` xlsxwriter` en Python (1)

Estoy usando xlsxwriter en Python para crear un Excel xlsx.

Considera el código

import xlsxwriter wb = xlsxwriter.Workbook(''Book.xlsx'') ws = wb.add_worksheet(''Sheet1'') data = ([''Average Start Date'',''365''],[''AAA'',''2'']) worksheet.add_table(1, 1, 4,4, {''data'':data,''first_column'':True,''style'':''Table Style Light 1'',''autofilter'': False,''columns'':[{''header'':''Attribute''},{''header'':''Value''}]}) ws.write_formula(''A4'', ''=IF(A3>1,"Yes", "No")'') ws.write_formula(''A5'', ''=VLOOKUP("Average Start Date",Table1,2,FALSE)/365'')

Después de abrir el archivo xlsx con Excel, la celda A4 muestra No , la fórmula se calcula. Por otro lado, la celda A5 muestra #NAME? .

Si selecciono la celda A5 , presione F2, que es para editar la fórmula, y presione Entrar sin modificar aparentemente nada de lo que se calcula la fórmula en A5 .

¿Por qué es esto? ¿Hay algún error en la forma en que estoy agregando la fórmula a A5 ? ¿Hay alguna manera de hacer que esa fórmula se calcule automáticamente?


Esto no es un error XlsxWriter, es un error de Excel. Obtendrá el mismo resultado si ingresó la fórmula manualmente y pulsa regresar.

¿El #NAME? El error se debe al hecho de que la fórmula se refiere a un rango de datos llamado Table4 que no existe.

Además, tiene un error de sintaxis en su fragmento de código. Debería ser:

ws = wb.add_worksheet(''Sheet1'') # Or just ws = wb.add_worksheet()

Además, debe agregar wb.close() al final del programa.

[Editar] Responda en el comentario del autor de esta respuesta

Parece que Table1 debe escribirse como Table1[] en la fórmula, así: =VLOOKUP("Average Start Date",Table1[],2,FALSE)/365'') . Se mostrará como Table1