XLSX-Workbook-Class
XLSX-Workbook-Class copied to clipboard
SaveGridToWorkbook automatically create formula from cell value
I added some new functionality to SaveGridToWorkbook if you're interested. If the value of a cell in a grid starts with '=', treat it like a formula. Here's the code:
*-* Add the cell data values and cell formatting
SELECT &lcGridAlias
SCAN
lnRow = lnRow + 1
RAISEEVENT(this, "OnShowStatusMessage", 3, lnRow)
FOR lnCol=1 TO lnColCount
loColumn = toGrid.Columns(laColOrder[lnCol, 2])
lcField = loColumn.ControlSource
lxCellValue = EVALUATE(lcField)
IF loGrid.Columns(laColOrder[lnCol, 2]).FieldPercent
lxCellValue = lxCellValue / 100
ENDIF
*** DH 2024-02-23: treat a value starting with "=" as a formula
* this.SetCellValue(lnWB, lnSh, lnRow, lnCol+tnBegCol-1, lxCellValue)
if vartype(lxCellValue) = 'C' and left(lxCellValue, 1) = '='
This.SetCellFormula(lnWB, lnSh, lnRow, lnCol+tnBegCol-1, strtran(lxCellValue, '{ROW}', transform(lnRow), -1, -1, 1))
else
this.SetCellValue(lnWB, lnSh, lnRow, lnCol+tnBegCol-1, lxCellValue)
endif vartype(lxCellValue) = 'C' ...
*** DH 2024-02-23: end of change
IF loGrid.Columns(laColOrder[lnCol, 2]).DynamicProperties