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

.NET

14/02/2014

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

Curtidas 0

Respostas

Henrique Gasparotto

Henrique Gasparotto

14/02/2014

Olá Marcos, dessa forma ele está funcionando?
GOSTEI 0
Marcos Pinto

Marcos Pinto

14/02/2014

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.

GOSTEI 0
Henrique Gasparotto

Henrique Gasparotto

14/02/2014

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.
GOSTEI 0
Marcos Pinto

Marcos Pinto

14/02/2014

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;
}
GOSTEI 0
Marcos Pinto

Marcos Pinto

14/02/2014

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