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