Excel Csharp - Validação nome de coluna e aba

14/02/2014

0

Pessoal, boa noite!

Gostaria de saber se consigo validar o nome das abas e colunas de um arquivo excel. Eu salvo o excel no banco e abro o arquivo, mas gostaria além disso, validar se o usuário colocou o nome da aba e da coluna de acordo com um modelo pré definido.

Eu utilizo a classe bulckcopy para gravar os dados no banco, ela identifica o nome da coluna, por isso, o excel tem que ser exatamente como está na classe.

Tentei fazer algo neste formado:

OleDbDataAdapter adapter = new OleDbDataAdapter("Select top 1 * from [Institution$]", con1);
DataSet ds = new DataSet();
using (SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString))
{
sqlcon.Open();
adapter.Fill(ds);
foreach (DataRow linha in ds.Tables[0].Rows)
{
DataTable.Equals("Record Id: ", linha["Record Id"].ToString());

Mas desta forma tenho que tratar o erro no catch com ifs e não ficou muito bom.

Se alguém souber de uma outra forma, agradeço.

Abs,

Marcos
Marcos Pinto

Marcos Pinto

Responder

Posts

20/02/2014

Henrique Gasparotto

Olá Marcos, dessa forma ele está funcionando?
Responder

20/02/2014

Marcos Pinto

Sim, ele funciona, só que desta forma eu trato a exceção.

Precisava de uma forma para tratar o erro antes de cair na exceção, consegui montar de outro jeito.

Responder

20/02/2014

Henrique Gasparotto

Sim, entendi. Então já está tudo ok? Se possível, coloque a solução aqui pra nós, pro pessoal entender melhor. Abraço.
Responder

20/02/2014

Marcos Pinto

using (OleDbConnection conn = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=;Extended Properties=Excel 12.0", serverFullPath)))
{
conn.Open();
DataTable dtSchema = conn.GetSchema("Tables");
DataTable dtSchemaColun = conn.GetSchema("Columns");
string SheetName = "'Export Worksheet$$'";
string strReturn = "";
List<string> retList;
List<string> columns = new List<string>(new[] {"colunaExcel"});

foreach (DataRow row in dtSchemaColun.Rows)
{
if (row["TABLE_NAME"].ToString() == SheetName)
{
if (columns.Exists(p => p.Equals(row["COLUMN_NAME"].ToString())))
{
columns.Remove(row["COLUMN_NAME"].ToString());
}
//retList.Add(columns.ToString());
}
else
{
conn.Close();
strReturn = SheetName.Replace("'Export Worksheet$$'", "'Export Worksheet'");
List<string> Sheet = new List<string>(new[] { strReturn });
return Sheet;
}
}
conn.Close();
retList = columns;
return retList;
}
Responder

20/02/2014

Marcos Pinto

Meu problema agora é quando utilizo um Excel com mais de uma sheet, alguma sugestão?
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar