ayuda: leer datos excel desde builder c++

nuevo
31 de Diciembre del 2003
Necesito abrir y leer un archivo de excel (.xls) desde el B. builder C++ 5 para recorrer las celdas y guardar los datos para trabajar con ellos, y finalmente crear un archivo .xls desde el builder y volcar all铆 datos de salida.

Yo nunca he usado el Builder, alguien sabe como se puede hacer esto?
Si teneis un ejemplo que enviarme lo agradecer铆a.


ferchito
31 de Diciembre del 2003
Tu probela lo he resuelto en vb recurriendo a OLE Automation, y lo ago de esta forma, vale anotar que se debe tener instalado excel en el PC.


Dim xlsApp As Object
Dim wkbNew As Object

Set xlsApp = CreateObject("Excel.Application")
Set wkbNew = xlsApp.Workbooks.Add
wkbNew.SaveAs...

wkbNew.Sheets("Hoja1").Select
wkbNew.Sheets("Hoja1").Cells(1, 1).Value = "valor1"
wkbNew.Sheets("Hoja1").Cells(1, 2).Value = "valor2"
wkbNew.Sheets("Hoja1").Cells(1, 3).Value = "valor3"
...
...
...
...
...
wkbNew.save
wkbNew.Close

Set wkbNew = Nothing
Set xlsApp = Nothing



Pero me imagino que quieres trabajar en C++Builder, No lo he echo en builder pero se que hay una equivalencia, que se logra utilizando las varialbes variant de la siguente forma.

Variant V = 5;
V = "Hello";
V = True;
V = 5.75;
String S = V; //S tiene el contiene la cadena "5,75"despues de esta instrucci贸n.

Una variable que no le importa el tipo.


En fin, lo o importante es lograr la equivalencia del codigo vb con C++Bulder. te envio esto, espero te sirva.

Deves crear un objeto de tipo OLE automation.

Revisa este c贸digo.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
MSWord = MSWord.CreateObject("Word.Basic");
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MSWord = Unassigned;
}




//------------


//Esto es otro bloque.


MSWord = CreateOleObject("Word.Basic");



//-----------------

//Esto es otro Bloque.


void __fastcall TForm1::Button3Click(TObject *Sender)
{
MSWord.OleProcedure("FileNew");
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
MSWord.OleProcedure("Insert", Memo1->Text);
}


//O si prefieres usar este c贸digo.

void __fastcall TForm1::Button3Click(TObject *Sender)
{
Procedure FileNew("FileNew");
MSWord.Exec(FileNew);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Procedure Insert("Insert");
MSWord.Exec(Insert << Memo1->Text);
}

//--------

//Otro bloque.



void __fastcall TForm1::Button5Click(TObject *Sender)
{
//Update Word's doc stats
MSWord.OleProcedure("DocumentStatistics");
//Obtain doc stats using 2 variants
Variant CurValues = MSWord.OleFunction("CurValues");
Variant DocStats = CurValues.OleFunction("FileSummaryInfo");
ListBox1-Items-Clear();
ListBox1-Items-Add(
String(DocStats.OleFunction("NumPages")) + " pages");
ListBox1-Items-Add(
String(DocStats.OleFunction("NumParas")) + " paragraphs");
ListBox1-Items-Add(
String(DocStats.OleFunction("NumLines")) + " lines");
ListBox1-Items-Add(
String(DocStats.OleFunction("NumWords")) + " words");
ListBox1-Items-Add(
String(DocStats.OleFunction("NumChars")) + " characters");
}



En fin, averigua sobre Ole automation y C++Builder.

Eso es todo, espero no averte confundido mas pues como te dije lo hice en vb y no en builder.