Como ler e alterar arquivos .xls

5 views
Skip to first unread message

gabrieldcf

unread,
Apr 14, 2007, 3:37:05 PM4/14/07
to ccppbrasil
Se ler e escrever dados em arquivos .txt usando <fstream>, mas quando
tento fazer o mesmo com arquivos .xls não consigo. Gostaria de saber
como posso fazer isso, mas peço que a explicação não envolva
orientação a objetos porque ainda não a domino - estou estudando C++
sozinho e nem terminei ainda o capítulo sobre arrays do Deitel.

Hugo Parente Lima

unread,
Apr 15, 2007, 6:33:13 AM4/15/07
to ccppb...@googlegroups.com

Um arquivo xls é um arquivo como qualquer outro, ler e escrever dados nele
você faz como faz com qualquer outro arquivo, o problema esta em interpretar
esses dados que você leu para em algo útil, pois como o formato é
proprietário isso é uma tarefa de engenharia reversa não muito agradável.

Não sei exatamente para que você quer escrever em uma rquivo .xls, mas se sua
planilha nao usar formatação você pode usar o formato de arquivo .csv, que é
bastante simples e o excel assim como todas as outras planilhas eletrônicas
que eu conheço também abre.

Existem outros modos de ler indiretamente uma planilha do excel, um deles é
usando ODBC, o pessoal aqui da lista sabe muito sobre programação para
Windows® e provavelmente deve saber outras formas de acessar os dados de uma
planilha do excel.

Explicação sobre o formato csv:
http://en.wikipedia.org/wiki/Comma-separated_values

>
> --~--~---------~--~----~------------~-------~--~----~
> C/C++ Brasil - http://www.cbrasil.org/
> Para sair dessa lista, envie um e-mail para
> ccppbrasil-...@googlegroups.com Para mais opções, visite
> http://groups.google.com/group/ccppbrasil
> -~----------~----~----~----~------~----~------~--~---

--
Hugo Parente Lima.
"Precisamos de mais gênios humildes no mundo, hoje somos poucos!"
JID: hu...@jabber.org

DQ

unread,
Apr 16, 2007, 6:49:51 AM4/16/07
to ccppbrasil
Como o Hugo disse, o mais fácil é usar arquivos CSV, porém estes
arquivos estão limitados a valores (não permite colocar fórmulas).

O formato proprietário do Excel é chamado BIFF e é notoriamente
complexo. O link abaixo contém informações e links para implementações
em C.

http://chicago.sourceforge.net/devel/docs/excel/

Daniel

thoth39

unread,
Apr 16, 2007, 8:40:37 AM4/16/07
to ccppbrasil

É mais jogo escrever para OpenOffice.org Spreadsheet.
Daí o sujeito pode usar a API pública sem grandes preocupações.

--
Pedro Lamarão

Cesar Mello

unread,
Apr 16, 2007, 12:44:23 PM4/16/07
to ccppb...@googlegroups.com
Pode utilizar o formato atual do Microsoft Office que é aberto, baseado em XML, e suporta todas as features do XLS com exatidão.
 
 
[]
Mello

Rodrigo Strauss

unread,
Apr 16, 2007, 1:43:33 PM4/16/07
to ccppb...@googlegroups.com
No Windows, use ADO ou os objetos de Automation do Excel. O connection
string do ADO fica algo como

connectionString = r'Provider=Microsoft.Jet.OLEDB.4.0;' \
'Data Source=%s;' \
'Extended Properties=excel 8.0'


(Isso é Python, mas completamente "entendível")

http://www.google.com/search?q=how+to+read+excel+ADO - existem vários
artigos sobre isso.

Mas acho que se você ainda está na parte de arrays do livro do Deitel
vai ter alguma dificuldade...

Rodrigo Strauss

gabrieldcf

unread,
Apr 16, 2007, 2:17:51 PM4/16/07
to ccppbrasil
Agradeço a todos pelas respostas.

Gabriel

On 16 abr, 14:43, "Rodrigo Strauss" <rodr...@1bit.com.br> wrote:
> No Windows, use ADO ou os objetos de Automation do Excel. O connection
> string do ADO fica algo como
>
> connectionString = r'Provider=Microsoft.Jet.OLEDB.4.0;' \
> 'Data Source=%s;' \
> 'Extended Properties=excel 8.0'
>
> (Isso é Python, mas completamente "entendível")
>

> http://www.google.com/search?q=how+to+read+excel+ADO- existem vários


> artigos sobre isso.
>
> Mas acho que se você ainda está na parte de arrays do livro do Deitel
> vai ter alguma dificuldade...
>
> Rodrigo Strauss
>

> On 4/14/07, gabrieldcf <gabriel...@gmail.com> wrote:
>
>
>
>
>
> > Se ler e escrever dados em arquivos .txt usando <fstream>, mas quando
> > tento fazer o mesmo com arquivos .xls não consigo. Gostaria de saber
> > como posso fazer isso, mas peço que a explicação não envolva
> > orientação a objetos porque ainda não a domino - estou estudando C++

> > sozinho e nem terminei ainda o capítulo sobre arrays do Deitel.- Ocultar texto entre aspas -
>
> - Mostrar texto entre aspas -

Reply all
Reply to author
Forward
0 new messages