コード例 #1
0
        public void Cleanup(ISheet sheet)
        {
            for (var r = sheet.FirstRowNum; r <= sheet.LastRowNum; r++)
            {
                var row = sheet.GetRow(r);
                if (row == null)
                {
                    continue;
                }
                foreach (var cell in row.Cells)
                {
                    var cellValue         = GetStringCellValue(cell);
                    var cellOriginalValue = cellValue;
                    if (LiquidHelper.ContainsLiquidTag(cellValue))
                    {
                        // TODO: This leaves empty rows
                        sheet.RemoveRow(row);
                        // check only first cell
                        break;
                    }

                    foreach (var liquidObject in LiquidHelper.GetLiquidObjects(cellValue))
                    {
                        cellValue = cellValue.Replace(liquidObject, string.Empty);
                    }
                    if (cellValue != cellOriginalValue)
                    {
                        cell.SetCellValue(cellValue);
                    }
                }
            }
        }
コード例 #2
0
 public void EvaluateObjects(ISheet sheet)
 {
     for (var r = sheet.FirstRowNum; r <= sheet.LastRowNum; r++)
     {
         var row = sheet.GetRow(r);
         if (row == null)
         {
             continue;
         }
         foreach (var cell in row.Cells)
         {
             var cellValue         = GetStringCellValue(cell);
             var cellOriginalValue = cellValue;
             foreach (var liquidObject in LiquidHelper.GetLiquidObjects(cellValue))
             {
                 var value = Binder.Eval(LiquidHelper.UnwrapLiquidObject(liquidObject));
                 if (value != null)
                 {
                     cellValue = cellValue.Replace(liquidObject, value);
                 }
             }
             if (cellValue != cellOriginalValue)
             {
                 cell.SetCellValue(cellValue);
             }
         }
     }
 }
コード例 #3
0
 public void EvaluateRow(IRow row, LiquidLoop loop)
 {
     foreach (var cell in row.Cells)
     {
         var cellValue         = GetStringCellValue(cell);
         var cellOriginalValue = cellValue;
         foreach (var liquidObject in LiquidHelper.GetLiquidObjects(cellValue))
         {
             var objectName = LiquidHelper.UnwrapLiquidObject(liquidObject);
             // strip loop variable name
             objectName = Regex.Replace(objectName, @"^" + loop.VariableName + @"\.", "");
             var value = Binder.Eval(objectName, loop.CollectionName, loop.Index);
             if (value != null)
             {
                 cellValue = cellValue.Replace(liquidObject, value);
             }
         }
         if (cellValue != cellOriginalValue)
         {
             cell.SetCellValue(cellValue);
         }
     }
 }