Lendo Excel via OleDB e problemas mais comuns - PARTE 2
ASP.NET
11/08/2010 por
Tufo
Continuando o post sobre excel ai vai a segunda parte:
Alguns Snippets:
Connection String para Excel 2003 para baixo:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=meuExcel.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1;"
Connection String para Excel 2007 (aparentemente funciona com todas as versões, inclusive 2010, mas não confirmei a informação):
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=meuExcel.xlsx;Extended Properties="Excel 12.0;HDR=YES;IMEX=1"
Obter as propriedades das planilhas dentro do arquivo (util para saber o nome das planilhas antes de fazer um SELECT):
DataTable dtSchema = null;
dtSchema = conObj.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
o datatable retornado terá as colunas: TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, TABLE_GUID, DESCRIPTION, TABLE_PROPID, DATE_CREATED e DATE_MODIFIED
Executar um SELECT comum em uma planilha dentro do arquivo:
using(OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Planilha1$]"))
{
cmd.Connection = this.cnn;
OleDbDataAdapter da= new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"Planilha1");
}
Para selecionar apenas uma parte da planilha, faça como faria numa fórmula de excel:
"SELECT * FROM [Planilha1$A10:B10]"
Basicamente é isso, não se esqueça que cada pc que sua aplicação for instalada, os registros têm de ser alterados também, entçao altere o installer e patcher da sua aplicação para fazer isso sempre que necessário.
Tem muita coisa pra falar ainda de Excel e seus [tri](bi)milhões de problemas gerados, mas por enquanto é só!
cya next class!
Comentários sobre o artigo
Poste um comentário >>
|