excel para o gridview
22/05/2011
0
Galera, tenho uma planilha em excel e quero importar ela pra o meu gridview e então salva-la no meu banco de dados, mas não sei como fazer. Alguem pode me ajudar? Estou usando c#
Cintia Ribeiro
Curtir tópico
+ 0
Responder
Posts
15/07/2011
Ronaldo Alves
Primeiro vc deve conectar a esta planinha, vou postar um exemplo que uso para pegar um xls, importar para grid e imprimir etiquetas a partir da grid.
private void btnxls_Click(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(tBnomePlanilha.Text))
{
MessageBox.Show("Entre com o nome da planilha.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
tBnomePlanilha.Focus();
return;
}
try
{
OpenFileDialog vAbreArq = new OpenFileDialog();
vAbreArq.Filter = "Microsoft Excel 2000 e 2003 (*.xls)|*.xls";
vAbreArq.Title = "Stigma - Selecione o arquivo";
if (vAbreArq.ShowDialog() == DialogResult.OK)
{
DataSet ds = new DataSet();
OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + vAbreArq.FileName + ";" +
"Extended Properties=Excel 8.0;");
//OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [CLIENTE$]", conexao);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + tBnomePlanilha.Text + "$]", conexao);
conexao.Open();
da.Fill(ds);
dgvExcel.DataSource = ds.Tables[0];
var gridExcel = dgvExcel;
gridExcel.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
gridExcel.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken;
gridExcel.RowsDefaultCellStyle.BackColor = Color.White;
gridExcel.AlternatingRowsDefaultCellStyle.BackColor = Color.Silver;
//altera o nome das colunas
gridExcel.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
gridExcel.MultiSelect = false;
gridExcel.DefaultCellStyle.NullValue = "-";
gridExcel.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
conexao.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Erro: " + ex.Message.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
qualquer duvida me chame.
private void btnxls_Click(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(tBnomePlanilha.Text))
{
MessageBox.Show("Entre com o nome da planilha.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
tBnomePlanilha.Focus();
return;
}
try
{
OpenFileDialog vAbreArq = new OpenFileDialog();
vAbreArq.Filter = "Microsoft Excel 2000 e 2003 (*.xls)|*.xls";
vAbreArq.Title = "Stigma - Selecione o arquivo";
if (vAbreArq.ShowDialog() == DialogResult.OK)
{
DataSet ds = new DataSet();
OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + vAbreArq.FileName + ";" +
"Extended Properties=Excel 8.0;");
//OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [CLIENTE$]", conexao);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + tBnomePlanilha.Text + "$]", conexao);
conexao.Open();
da.Fill(ds);
dgvExcel.DataSource = ds.Tables[0];
var gridExcel = dgvExcel;
gridExcel.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
gridExcel.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken;
gridExcel.RowsDefaultCellStyle.BackColor = Color.White;
gridExcel.AlternatingRowsDefaultCellStyle.BackColor = Color.Silver;
//altera o nome das colunas
gridExcel.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
gridExcel.MultiSelect = false;
gridExcel.DefaultCellStyle.NullValue = "-";
gridExcel.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
conexao.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Erro: " + ex.Message.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
qualquer duvida me chame.
Responder
Clique aqui para fazer login e interagir na Comunidade :)