xlsxcellformula.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /****************************************************************************
  2. ** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
  3. ** All right reserved.
  4. **
  5. ** Permission is hereby granted, free of charge, to any person obtaining
  6. ** a copy of this software and associated documentation files (the
  7. ** "Software"), to deal in the Software without restriction, including
  8. ** without limitation the rights to use, copy, modify, merge, publish,
  9. ** distribute, sublicense, and/or sell copies of the Software, and to
  10. ** permit persons to whom the Software is furnished to do so, subject to
  11. ** the following conditions:
  12. **
  13. ** The above copyright notice and this permission notice shall be
  14. ** included in all copies or substantial portions of the Software.
  15. **
  16. ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  17. ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  18. ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  19. ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  20. ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  21. ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  22. ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  23. **
  24. ****************************************************************************/
  25. #ifndef QXLSX_XLSXCELLFORMULA_H
  26. #define QXLSX_XLSXCELLFORMULA_H
  27. #include "xlsxglobal.h"
  28. #include <QExplicitlySharedDataPointer>
  29. class QXmlStreamWriter;
  30. class QXmlStreamReader;
  31. QT_BEGIN_NAMESPACE_XLSX
  32. class CellFormulaPrivate;
  33. class CellRange;
  34. class Worksheet;
  35. class WorksheetPrivate;
  36. class Q_XLSX_EXPORT CellFormula
  37. {
  38. public:
  39. enum FormulaType {
  40. NormalType,
  41. ArrayType,
  42. DataTableType,
  43. SharedType
  44. };
  45. CellFormula();
  46. CellFormula(const char *formula, FormulaType type=NormalType);
  47. CellFormula(const QString &formula, FormulaType type=NormalType);
  48. CellFormula(const QString &formula, const CellRange &ref, FormulaType type);
  49. CellFormula(const CellFormula &other);
  50. ~CellFormula();
  51. CellFormula &operator =(const CellFormula &other);
  52. bool isValid() const;
  53. FormulaType formulaType() const;
  54. QString formulaText() const;
  55. CellRange reference() const;
  56. int sharedIndex() const;
  57. bool operator == (const CellFormula &formula) const;
  58. bool operator != (const CellFormula &formula) const;
  59. bool saveToXml(QXmlStreamWriter &writer) const;
  60. bool loadFromXml(QXmlStreamReader &reader);
  61. private:
  62. friend class Worksheet;
  63. friend class WorksheetPrivate;
  64. QExplicitlySharedDataPointer<CellFormulaPrivate> d;
  65. };
  66. QT_END_NAMESPACE_XLSX
  67. #endif // QXLSX_XLSXCELLFORMULA_H