Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas

viernes, 4 de junio de 2010

Volcar un DataTable a Excel en C#

Suponemos que Excel y DataTable tienen las mismas columnas y en el mismo orden.

string strConnnectionOle = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=" + rutaexcel + ";" + @"Extended Properties=" + '"' + "Excel 8.0;HDR=NO" + '"';

foreach (DataRow row in dtSQL.Rows)
{
row.SetAdded();
}

string sql = "SELECT * FROM [RANGO_DE_LA_EXCEL]";

OleDbDataAdapter da = new OleDbDataAdapter(sql, cnn);

OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
cb.QuotePrefix = "[";
cb.QuoteSuffix = "]";

da.InsertCommand = cb.GetInsertCommand();

// Devolverá el número de registros afectados.
int n = da.Update(dtSQL);

// Aceptamos los cambios
dtSQL.AcceptChanges();

martes, 1 de junio de 2010

Importación a Excel desde SQLServer en C#

Bueno una vez tuve que exportar datos desde el SQLServer a Excel y una de las formas que aprendí fue la siguiente; con una solo conexión y un SELECT INTO


string strConnnectionOle = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=" + rutaexcel + ";" + @"Extended Properties=" + '"' + "Excel 8.0;HDR=NO" + '"';


OleDbConnection ConexExcel = new OleDbConnection(strConnnectionOle);
ConexExcel.Open();

string sql = "SELECT * INTO [Hoja1] FROM TABLA_SQL "
+ "IN '' [ODBC;DRIVER={SQL Server};"
+ @"Server=SERVIDOR_SQL;"
+ "Database=BD_SQL;"
+ "UID=USUARIO_SQL;"
+ "PWD=PASSWORD_SQL]";
OleDbCommand cmd = new OleDbCommand(sql, ConexExcel);
cmd.CommandType = CommandType.TableDirect;
int a = cmd.ExecuteNonQuery();

ConexExcel.Close();