Press "Enter" to skip to content

Tag: Excel

Creare una Dll .Net utilizzabile dal VBA di Excel

Un post in risposta ad un quesito posto sul Forum Microsoft in cui un Temerario che ha la necessità di utilizzare delle funzioni .Net da dentro Excel chiedeva come mai non riusciva a vedere una libreria .Net da dentro a Excel.

Credo che l’ultima volta che ho usato questa cosa sia stato il 2005, poi, per mia fortuna ho potuto evitare l’interoperabilità, anche perché sono sempre maggiori i paletti inseriti all’interno degli strumenti office per paura della creazione di virus che possano danneggiare i computer.

Ad ogni modo, ho creato una libreria esempio, seguendo quanto esposto da chi ha fatto la domanda e ho verificato tutti gli step necessari a poterla utilizzare dentro al VBA di Excel.

solution_01

Comments closed

Convertire un file XML o JSON in un foglio di Excel

Visto che ho postato come fare il contrario, e visto che la documentazione su EpPlus è davvero scarsa, ho deciso di postare anche l’esempio contrario, ovvero come generare un foglio di Excel elaborando una collection che abbiamo recuperato leggendo un file XML oppure un file JSON. Ovviamente mi limiterò alle basi, ma EpPlus è in grado di aiutarci a produrre dei fogli excel anche molto complessi e contenenti non solo semplici dati tabellari ma grafici, pivot e molto altro.

Ho pubblicato qualche post fa un esempio d’uso degli oggetti di stampa di .Net per windows forms, ma normalmente, gli output dei miei programmi sono più spesso dei fogli di Excel, principalmente perché lavorando su progetti che riguardano l’analisi e la trasformazione di dati grezzi in dati di qualità, quello che io produco solitamente viene ulteriormente elaborato da chi riceve gli output. E’ comunque buona cosa per chiunque faccia programmi per il mondo delle aziende pensare di inserire in modo standard la possibilità di effettuare un output dei dati che elaboriamo su un foglio di Excel.

mainwindow_01

Comments closed

Convertire un foglio di Excel in JSON

Nel precedente post, abbiamo visto come convertire un foglio di Excel in XML, ma considerato che il formato JSON sta diventando lo standard per lo scambio di dati, soprattutto quando si parla di servizi Web, e di applicazioni di ogni genere e tipo, credo sia una cosa buona vedere come svolgere lo stesso tipo di conversione creando un file JSON. Per farlo, oltre ad utilizzare la libreria open source EPPlus, la trovate all’inidirizzo:  epplus.codeplex.com per leggere i dati dal foglio di Excel, utilizzeremo JSON.Net ovvero la libreria Newtonsoft Json che è divenuta ormai lo standard utilizzato da tutte le applicazioni .net per creare il file in formato JSON.

Anche in questo caso, l’esempio vuole illustrare come convertire un file in formato generico, senza dover per forza creare una classe .Net in cui memorizzare i dati della tabella Excel per poi convertirla. Serve per le conversioni Una-Tantum o quando vi venissero inviati dati generici che magari devono divenire una Tabella di dati di configurazione per una applicazione che non avrà bisogno di essere riconvertita in seguito.

Vediamo anche in questo caso l’applicazione WPF, che con eccessiva fantasia stavolta ho chiamato FromExcelToJson.

mainwindow_01

Comments closed

Convertire un foglio di Excel in XML

Un collega mi ha chiesto un suggerimento su come fare un programma per leggere dati da un foglio di Excel e convertirli in un file XML, considerato che è qualcosa che potrebbe accadere anche spesso, visto che soprattutto i non informatici hanno una propensione per utilizzare i fogli di Excel come database. O come formato standard di scambio dati, ho deciso di fare un esempio che mostra come utilizzare la libreria Open Source EPPlus, la trovate all’inidirizzo:  epplus.codeplex.com per leggere un file di Excel e scrivere un documento XML senza utilizzare per questo una specifica classe.

Perché questo esempio? perché è semplice da utilizzare per ricevere dati di tipo One Shot ovvero ci arriveranno una sola volta, quindi non vale la pena di costruire una classe entity e una collection per leggere una sola volta un foglio di Excel.

Vediamo come è fatta l’applicazione, si tratta di una applicazione WPF che ho chiamato con molta fantasia FromExcelToXml che contiene una sola Window, MainWindow:

MainWindow_01

Comments closed

Trasformare un numero decimale in stringa nel formato standard americano, ovvero con il separatore decimale valido per i parser C#

Per disgrazia di noi poveri programmatori, nell’era della globalizzazione nessuno ha pensato di standardizzare il formato con cui sono scritti i numeri e le date in formato stringa.

Pertanto in Italia separiamo i decimali con la virgola e le migliaia con i punti, negli Stati Uniti hanno la convenzione contraria, in Svezia mi dicono che il separatore delle migliaia è uno spazio, quindi quando si tratta di numeri e stringhe e di programmi che devono fare un parse, va sempre a finire che aumentiamo i nostri crediti per finire all’inferno.

Comments closed

Exception from HRESULT: 0x800A03EC – Scrivendo una formula in un foglio Excel da C#

Contesto:

Sto preparando un esportazione su foglio excel di dati letti da uno dei nostri software e la richiesta è stata di fare in modo che non vengano esportati solo i valori ma vengano esportati i dettagli in forma di valore e tutti i totalizzatori siano inseriti in excel come formule.

Problema:

Se scrivevo le formule in modalità base, ovvero  “=A1*B2/C3” tutto funzionava perfettamente, se invece inserivo una formula a volte funzionava altre volte no. In particolare la formula “ROUND” non funzionava per nulla.

Comments closed