Hola estoy utilizando automatizacion para exportar a un archivo en excel por
medio de oledb. en desarrollo todo funciona muy bien pero cuando lo paso a
productivo me arroja un error de COM. adjunto pongo el codigo que estoy
utilizando y seguido el error. si alguien me puede ayudar a ver que me falta
se lo agradeceré.
el codigo:
protected void expExcel_Click(object sender, EventArgs e)
{
//File.Delete("C:\\Documents and
Settings\\sbernal\\EscritorioContratosLaborFechaFin.xls");
ADODB.Connection cn = new ADODB.Connection();
ADODB.Recordset rs = new ADODB.Recordset();
string cnStr;
string query;
//Connection string.
cnStr = "Provider=SQLOLEDB;Initial Catalog=***;Data
Source=serverSQL;User ID=***;Password=***";
query = "exec consultaYin '" + firstinput.Text + "', '" +
secondinput.Text + "'";
cn.ConnectionString = cnStr;
cn.Open(null, null, null, 0);
rs.Open(query, cnStr, ADODB.CursorTypeEnum.adOpenKeyset,
ADODB.LockTypeEnum.adLockOptimistic, -1);
Excel.Workbooks m_objBooks;
Excel.Workbook m_objBook;
object m_objOpt;
Excel.Sheets m_objSheets;
Excel.Worksheet m_objSheet;
Excel.Range m_objRange;
m_objOpt = System.Reflection.Missing.Value;
Excel.Application m_objExcel = new Excel.Application();
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = (Excel.Workbook)(m_objBooks.Add(m_objOpt));
m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
m_objSheet = (Excel.Worksheet)(m_objSheets.get_Item(1));
object[] objHeaders = { "No. Requerimiento", "Nombre", "No.
Documento", "Sociedad - Sucusal", "Operación", "Fecha Ingreso", "Fecha
Retiro", "Tipo de contrato", "Fecha de cierre" };
m_objRange = m_objSheet.get_Range("A1", "I1");
m_objRange.Value2 = objHeaders;
DataSet reporte = yin.consultaYin(firstinput.Text, secondinput.Text);
m_objRange = m_objSheet.get_Range("A2", m_objOpt);
m_objRange = m_objRange.get_Resize(retorno.Rows.Count, 9);
m_objRange.CopyFromRecordset(rs, m_objOpt, m_objOpt);
String pepe;
pepe = Server.MapPath(DateTime.Today.Year.ToString() +
DateTime.Today.Month.ToString() + DateTime.Today.Day.ToString() +
DateTime.Now.Hour.ToString() + ".xls");
m_objBook.SaveAs(pepe, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt,
Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt);
m_objBook.Close(false, m_objOpt, m_objOpt);
m_objExcel.Quit();
rs.Close();
cn.Close();
Response.Redirect(DateTime.Today.Year.ToString() +
DateTime.Today.Month.ToString() + DateTime.Today.Day.ToString() +
DateTime.Now.Hour.ToString() + ".xls");
}
el error:
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: Retrieving
the COM class factory for component with CLSID
{00024500-0000-0000-C000-000000000046} failed due to the following error:
80040154.
segun el error que me arroja la pagina le excepcion ocurre en la linea:
Excel.Application m_objExcel = new Excel.Application();
si alguien me puede dar una luz sobre este tema le agradeceré enormemente.
Silverio Bernal
Leer las respuestas