Hola Foreros
Alguien sabe como demonios se especifica el nombre de archivo cuando se esta usando interoperabilidad al crear un excel desde cero en c#??
me explico.
Tengo una serie de datos (dinamicamente obtenidos), par alos cuales por cada cierto numero de registros debo generar un excel en una carpeta x del disco...
la estructura es la siguiente
foreach (DataRow drAgrupamiento in dttAgrupamientos.Rows)
{
string sClave = drAgrupamiento["clave"]..... bla bla
Datatable datos = clasedata.ObtenerDatosAgrupa(sClave);
grabar_datos_en_excel(datos)
}
por supuesto no son las lineas de codigo que tengo escritas, si no que solamente un ejemplo....
pues bien.. el proceso de obtencion de datos es simple, y no reviste mayor problema. El real problema, es que he intentado con varias formas el generar un excel desde el codigo, pero no consigo dar con la funcionalidad para asignar un nombre al archivo en excel creado en memoria...
estoy probando la siguiente soliucion, que se basa en tener excel instalado en el equipo.
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;
oXL = new Excel.Application();
oXL.Visible = true;
//Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value) );
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
el problema con este codigo, es que levanta la aplicacion excel al usuario, lo cual no debe suceder, sino que todo el proceso debe crear los archivos en un segundo plano, ya que incluso, los nonbres de archivo existen en un datatable, y son pasados como parametro al proceso de creacion.
intente poner oXL.Visible = false;, pero esto solo oculta la hoja que sigue estando presente en memoria, y por supuesto no se graba.
he recorrido todas las opciones del objeto oXL, (save, DefaultFilePath, Workbooks, etc) pero no encuentro como grabar el excel con el nombre de archivo automaticamente sin que el usuario tenga que ver la hoja generada.
tambien probe la opcion de generar xml, pero no me sirve de mucho, ya que tengo que calcular cosas dentro de ciertos rangos, e inclusive dar formato
no se si fui muy claro, si alguien tiene alguna pista de que estoy haciendo mal, le agradezco de antemano.
Saludos
Plch