formula.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Copyright (c) 2010-2024 openpyxl
  2. from openpyxl.compat import safe_string
  3. class DataTableFormula:
  4. t = "dataTable"
  5. def __init__(self,
  6. ref,
  7. ca=False,
  8. dt2D=False,
  9. dtr=False,
  10. r1=None,
  11. r2=None,
  12. del1=False,
  13. del2=False,
  14. **kw):
  15. self.ref = ref
  16. self.ca = ca
  17. self.dt2D = dt2D
  18. self.dtr = dtr
  19. self.r1 = r1
  20. self.r2 = r2
  21. self.del1 = del1
  22. self.del2 = del2
  23. def __iter__(self):
  24. for k in ["t", "ref", "dt2D", "dtr", "r1", "r2", "del1", "del2", "ca"]:
  25. v = getattr(self, k)
  26. if v:
  27. yield k, safe_string(v)
  28. class ArrayFormula:
  29. t = "array"
  30. def __init__(self, ref, text=None):
  31. self.ref = ref
  32. self.text = text
  33. def __iter__(self):
  34. for k in ["t", "ref"]:
  35. v = getattr(self, k)
  36. if v:
  37. yield k, safe_string(v)