Ayuda con un problema
Publicado por Fernando Frasco (3 intervenciones) el 24/09/2022 04:17:49
como puedo enviar los datos de un datagridview a un datetimepicker, uso una conexion de oledbdataadapter con excel, ya intente con varias formas
DataView ImportarDatos(string nombreArchivo)
{
string conexion = string.Format("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = {0};Extended Properties = 'Excel 12.0'", nombreArchivo);
OleDbConnection conector = new OleDbConnection(conexion);
conector.Open();
OleDbCommand consulta = new OleDbCommand("select * from [Hoja2$]", conector);
OleDbDataAdapter adaptador = new OleDbDataAdapter
{
SelectCommand = consulta
};
DataSet ds = new DataSet();
adaptador.Fill(ds);
conector.Close();
return ds.Tables[0].DefaultView;
}
private void btnImportar_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog
{
Filter = "Excel | * .xls;*.xlsx;",
Title = "Seleccionar Archivo",
};
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
dgvDatosPagos.DataSource = ImportarDatos(openFileDialog.FileName);
}
}
public void exportarDatos(DataGridView dgvListado)
{
Microsoft.Office.Interop.Excel.Application exportarExcel = new Microsoft.Office.Interop.Excel.Application();
exportarExcel.Application.Workbooks.Add(true);
int indiceColumna = 0;
foreach (DataGridViewColumn columna in dgvListado.Columns)
{
indiceColumna++;
exportarExcel.Cells[1, indiceColumna] = columna.Name;
}
int indicefila = 0;
foreach (DataGridViewRow fila in dgvListado.Rows)
{
indicefila++;
indiceColumna = 0;
foreach (DataGridViewColumn columna in dgvListado.Columns)
{
indiceColumna++;
exportarExcel.Cells[indicefila + 1, indiceColumna] = fila.Cells[columna.Name].Value;
}
}
exportarExcel.Visible = true;
}
private void btnExportar_Click(object sender, EventArgs e)
{
exportarDatos(dgvDatosPagos);
}
private void btnModificar_Click(object sender, EventArgs e)
{
if (dgvDatosPagos.SelectedRows.Count > 0)
{
/* DateTime dt = DateTime.ParseExact(dgvDatosPagos.CurrentCell.Value.ToString(), "short", CultureInfo.InvariantCulture);*/
/* dtFecha.Value = dt; */
tbPaciente.Text = dgvDatosPagos.CurrentRow.Cells[1].Value.ToString();
tbMedico.Text = dgvDatosPagos.CurrentRow.Cells[2].Value.ToString();
tbServicio.Text = dgvDatosPagos.CurrentRow.Cells[3].Value.ToString();
tbPrecio.Text = dgvDatosPagos.CurrentRow.Cells[4].Value.ToString();
}
}
DataView ImportarDatos(string nombreArchivo)
{
string conexion = string.Format("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = {0};Extended Properties = 'Excel 12.0'", nombreArchivo);
OleDbConnection conector = new OleDbConnection(conexion);
conector.Open();
OleDbCommand consulta = new OleDbCommand("select * from [Hoja2$]", conector);
OleDbDataAdapter adaptador = new OleDbDataAdapter
{
SelectCommand = consulta
};
DataSet ds = new DataSet();
adaptador.Fill(ds);
conector.Close();
return ds.Tables[0].DefaultView;
}
private void btnImportar_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog
{
Filter = "Excel | * .xls;*.xlsx;",
Title = "Seleccionar Archivo",
};
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
dgvDatosPagos.DataSource = ImportarDatos(openFileDialog.FileName);
}
}
public void exportarDatos(DataGridView dgvListado)
{
Microsoft.Office.Interop.Excel.Application exportarExcel = new Microsoft.Office.Interop.Excel.Application();
exportarExcel.Application.Workbooks.Add(true);
int indiceColumna = 0;
foreach (DataGridViewColumn columna in dgvListado.Columns)
{
indiceColumna++;
exportarExcel.Cells[1, indiceColumna] = columna.Name;
}
int indicefila = 0;
foreach (DataGridViewRow fila in dgvListado.Rows)
{
indicefila++;
indiceColumna = 0;
foreach (DataGridViewColumn columna in dgvListado.Columns)
{
indiceColumna++;
exportarExcel.Cells[indicefila + 1, indiceColumna] = fila.Cells[columna.Name].Value;
}
}
exportarExcel.Visible = true;
}
private void btnExportar_Click(object sender, EventArgs e)
{
exportarDatos(dgvDatosPagos);
}
private void btnModificar_Click(object sender, EventArgs e)
{
if (dgvDatosPagos.SelectedRows.Count > 0)
{
/* DateTime dt = DateTime.ParseExact(dgvDatosPagos.CurrentCell.Value.ToString(), "short", CultureInfo.InvariantCulture);*/
/* dtFecha.Value = dt; */
tbPaciente.Text = dgvDatosPagos.CurrentRow.Cells[1].Value.ToString();
tbMedico.Text = dgvDatosPagos.CurrentRow.Cells[2].Value.ToString();
tbServicio.Text = dgvDatosPagos.CurrentRow.Cells[3].Value.ToString();
tbPrecio.Text = dgvDatosPagos.CurrentRow.Cells[4].Value.ToString();
}
}
Valora esta pregunta


0