#!/usr/bin/env perl
use warnings;
use strict;
use Excel::Writer::XLSX;
my $workbook = Excel::Writer::XLSX->new( "perl.xlsx" );
my $worksheet = $workbook->add_worksheet();
$worksheet->write_formula( "A1", "=SUM(1, 2, 3, 4)" );
$workbook->close();
Fino ad ora questo ha funzionato bene con LibreOffice. Ma oggi questo non funziona più (il valore in A1
è 0
) - forse a causa di alcuni aggiornamenti di LibreOffice (LibreOffice 3.5 Build-ID: 350m1 (Build: 402)).
Fa il occasionally
nella parte seguente del Excel :: Writer :: XLSX la documentazione si riferisce a questo tipo di situazioni?
If required, it is also possible to specify the calculated value of the formula. This is occasionally necessary when working with non-Excel applications that don"t calculate the value of the formula. The calculated $value is added at the end of the argument list
risposte:
1 per risposta № 1Excel :: Writer :: XLSX non calcola il valore di una formula che scrive, ma inserisce 0 e consente all'utente di specificare il valore se necessario.
Questa non è una grande soluzione, ma è la migliore che si possa fare dal momento che il calcolo di formule complesse arbitrarie va oltre lo scopo del modulo.
E, in generale, Excel e altre applicazioni di terze parti ricalcoleranno i valori delle formule per la visualizzazione.
0 per risposta № 2
È un'impostazione in LibreOffice. Ecco una soluzione (citazione da Qui):
LibreOffice intenzionalmente non ricalcolafogli di calcolo più vecchi, perché le formule vengono aggiornate dalla versione alla versione o tra diversi programmi di foglio di calcolo, i risultati possono essere diversi. Vai a Strumenti - Opzioni - LibreOffice Calc, sotto "Ricalcola su file caricare ", modificare i due menu a discesa," Excel 2007 e versioni successive "e" ODF Foglio di calcolo (non salvato da LibreOffice) ", su" Ricalcola sempre ". Fai clic su OK, chiudi il foglio di calcolo e LibreOffice. Ora apri il file LibreOffice e dovresti vedere che le formule sono state ricalcolate.
Vai anche a Strumenti - Contenuto della cella e assicurati che sia selezionato Calcolo automatico.