/ / Excel :: Writer :: XLSX: Problemi con LibreOffice - perl, excel-formula, libreoffice

Excel :: Writer :: XLSX: Problemi con LibreOffice - perl, excel-formula, libreoffice

#!/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 № 1

Excel :: 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.