PDA

View Full Version : [C#] Importare file excel e rielaborarli.


cipi
20-10-2003, 16:48
Ciao forumiani,
sono un ingegnere e fino ad ora ho sviluppato i miei algoritmi in ANSI C (...lo so, sono un primitivo :huh: ) o, quando dovevo fare alla svelta, in MATLAB. Ora mi ritrovo a dover produrre un programma che come input legga file Excel. Ho deciso allora di buttarmi a pesce su C# in ambiente .NET ma... di questo linguaggio non so una banana...!
Mi date una mano? E' il linguaggio più indicato per questo genere di cose il C#? Riuscireste a spedirmi un paio di righe di codice che mi facciano leggere il file Excel e che mi consentano di trattare opportunamente i dati? Sapete a quali librerie mi devo riferire? Essenzialmente i file trattati sono delle grosse matrici a numero di righe variabili...
Vi prego, qualsiasi aiuto mi sarà utile... :help: Linkatemi anche, se volete, qualche howto...
Grazie a quanti mi risponderanno...

soalle
20-10-2003, 19:01
Avevo provato qualcosina in passato... è abbastanza semplice...
Attualmente tra l'altro la MS ha rilasciato i Visual Studio Tools for the Microsoft Office System... ma non penso sia quello che ti interessa... o meglio vanno benissimo, ma costano 500 $ oppure 200 $ se upgradi da VS.NET 2003...


Per qualcosa di più tranquillo si può fare comunque.
Tutto si basa sul DOM di Excel basta impararselo un po' e ti diverti.

Se vuoi documentazione aggiuntiva (che può essere utile per capire il DOM) nell'installazione di office installa anche "guida per vba" o qualcosa del genere. Lì trovi come è il DOM non gestito di Excel... le classi C# wrappano quasi 1 a 1 le classi non gestite quindi non dovresti avere problemi...
Il file installato va a finire nella dir:
\Microsoft Office\Office10\1040
e ha nome vba**xl.chm (dove le ** sono per la versione di office che hai... tra l'altro lì trovi altri file vba****.chm per word, outolook e compagnia)

Ma veniamo al dunque:
Qua ci sono un po' di risorse:
http://search.microsoft.com/search/results.aspx?View=msdn&st=a&qu=office+automation&c=0&s=1

Altra cosa bisogna scaricarsi i wrapper C# che incapsulano le dll non gestite.

http://www.microsoft.com/downloads/results.aspx?ductID=&freetext=.NET+Office&DisplayLang=en

[Devi scaricare: Office XP Primary Interop Assemblies (PIAs) - chiaramente in ogni pc che vuoi fare girare l'applicazione devi installare oltre al framework anche questo filettino...]

[Understanding the Excel Object Model from a .NET Developer's Perspective]
http://www.microsoft.com/downloads/details.aspx?FamilyID=8b2a7288-bd98-401d-b309-2e587d98cd67&DisplayLang=en

soalle
20-10-2003, 19:29
Qua c'è una piccolissima prova di ciò che avevo fatto:
// Declare the variables
using System;
using Microsoft.Office.Interop.Excel;


public class Prova{

public static void Main(){

Application exc;
Workbooks wbs;
Workbook book=null;

// Create the Excel application object.
Console.ReadLine();
exc = new Application();

// Make Excel visible.
exc.Visible = true;
wbs=exc.Workbooks;

// Create a new work book.
try
{
book=wbs.Open("C:\\Lavoro.xls",1,1,1,1,1,1,1,1,1,1,1,1,1,1);
}
catch(Exception e){
Console.WriteLine(e.Message);
}

// Place some text in the first cell of the sheet.
Console.WriteLine(book);
book.Worksheets.PrintPreview(0);

/* Close Excel with the Quit method on the Application object.*/
Console.ReadLine();
wbs.Close();

exc.Quit();
}

}

cipi
21-10-2003, 09:16
Ciao soalle,
grazie mille per le dritte...:ave:
Per il momento sono ancora poco esperto ma appena ne sarò in grado metterò in pratica i tuoi consigli...
Se dovessi avere casini... mi sentirai presto!;) ;) ;)
ciao

soalle
21-10-2003, 10:28
Di niente... in C# sono abbastanza ferrato... in office automation un po' meno... ;)

auction
22-12-2003, 17:38
[B]ho sviluppato i miei algoritmi in ANSI C (...lo so, sono un primitivo :huh: ) o, quando dovevo fare alla svelta, in MATLAB. Ora mi ritrovo a dover produrre un programma che come input legga file Excel

perchè non continui ad usare Matlab leggendo i file Excel con comandi tipo XLSREAD?

cipi
07-01-2004, 14:53
Originariamente inviato da auction
perchè non continui ad usare Matlab leggendo i file Excel con comandi tipo XLSREAD?
...l'ho usato spesso e fino a quando ho potuto... dovevo però trattare una gran mole di dati e quindi....

auction
08-01-2004, 13:13
magari potre i controlli active x di excel, gestibili da matlab
Se fai uan ricerca nell help di Matlab dovresti capire che potenzialità hanno