Vengo con una nueva dudilla que me ha surgido ... Les platico...
Tengo un archivo de Excel que leo para cargar en un StringGrid (ésto ya lo hago sin problemas con un componente TQImport2XLS), pero ahora me ha surgido la necesidad de saber cuántos registros (rows) existen en el archivo ANTES de cargarlo en el StringGrid...
Para ello hice ésto:
delphi
procedure TfrmIntImpo16.ImportaDatos; const xlCellTypeLastCell = $0000000B; var Excel, Sheet: OLEvariant; CantRow: Integer; begin Excel := CreateOleObject('Excel.Application'); Excel.Workbooks.Open(edtPath.Text); Sheet := Excel.Workbooks[ExtractFileName(edtPath.Text)].WorkSheets[1]; Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; CantRow := Excel.ActiveCell.Row; // Aquí me da el total de registros Excel.Workbooks.Close; // Esta línea se la agregué para que no me diera error de recurso compartido al usar de nuevo el archivo para cargarlo más adelante
El detalle es que cuando ejecuta esta linea Excel.Workbooks.Close; me manda un cuadro de diálogo para preguntarme si deseo guardar el archivo, pero no quiero que me pregunte, quiero que lo cierre sin preguntarme nada de nada.... o como quien dice, que lo cierre sin guardar por default...
Aquí las preguntas:
1. La manera de obtener el total de registros es la mejor como lo estoy haciendo ?
2. Cómo puedo decirle a la variable Excel que cierre el archivo sin necesidad de que pregunte si guarda o no ?
Saludox y Gracias a todos