Estoy desarrollando un complemento de Excel 2007 usando Visual Studio Tools para Office (2008). Tengo una hoja con varios ListObjects en ella, que están vinculados a datatables en el inicio. Cuando están vinculados, se autosize correctamente..NET - Excel ListObject autosizing en databind
El problema surge cuando se vuelven a vincular. Tengo un botón personalizado en la barra de cinta que vuelve a la base de datos y recupera información diferente según algunos criterios que ingresa el usuario. Estos nuevos datos se vuelve y se re-une a los ListObjects - sin embargo, esta vez no se redimensionan y me da una excepción:
ListObject no puede ser obligado porque no se puede cambiar de tamaño para ajustar los datos. El ListObject no pudo agregar nuevas filas. Esto puede deberse a la incapacidad de para mover objetos debajo del objeto de lista .
Excepción interna: "método Insert de la clase Range falló"
Motivo: Microsoft.Office.Tools.Excel.FailureReason.CouldNotResizeListObject
yo no era capaz de encontrar nada muy significativo en este error en Google o MSDN. He estado tratando de resolver esto por un tiempo, pero fue en vano.
estructura de código básica:
//at startup
DataTable tbl = //get from database
listObj1.SetDataBinding(tbl);
DataTable tbl2 = //get from database
listObj2.SetDataBinding(tbl2);
//in buttonClick event handler
DataTable tbl = //get different info from database
//have tried with and without unbinding old source
listObj1.SetDataBinding(tbl); <-- exception here
DataTable tbl2 = //get different info from database
listObj2.SetDataBinding(tbl2);
Tenga en cuenta que esta excepción se produce incluso cuando el ListObject se está reduciendo, y no sólo cuando crece.