Sfoglia il codice sorgente

Go 1.15 and later required, #65 fn: IMABS, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMEXP, IMLN and IMLOG10

xuri 4 anni fa
parent
commit
f8f699a172
57 ha cambiato i file con 328 aggiunte e 61 eliminazioni
  1. 0 4
      .travis.yml
  2. 1 1
      README.md
  3. 1 1
      README_zh.md
  4. 1 1
      adjust.go
  5. 203 3
      calc.go
  6. 71 0
      calc_test.go
  7. 1 1
      calcchain.go
  8. 1 1
      cell.go
  9. 1 1
      chart.go
  10. 1 1
      col.go
  11. 1 1
      comment.go
  12. 1 1
      comment_test.go
  13. 1 1
      crypt.go
  14. 1 1
      crypt_test.go
  15. 1 1
      datavalidation.go
  16. 1 1
      datavalidation_test.go
  17. 1 1
      date.go
  18. 1 1
      docProps.go
  19. 1 1
      docProps_test.go
  20. 1 1
      drawing.go
  21. 1 1
      drawing_test.go
  22. 1 1
      errors.go
  23. 1 1
      excelize.go
  24. 1 1
      file.go
  25. 1 1
      go.mod
  26. 1 1
      lib.go
  27. 1 1
      merge.go
  28. 1 1
      picture.go
  29. 1 1
      pivotTable.go
  30. 1 1
      rows.go
  31. 1 1
      shape.go
  32. 1 1
      sheet.go
  33. 1 1
      sheetpr.go
  34. 1 1
      sheetview.go
  35. 1 1
      sparkline.go
  36. 1 1
      stream.go
  37. 1 1
      styles.go
  38. 1 1
      table.go
  39. 1 1
      templates.go
  40. 1 1
      vmlDrawing.go
  41. 1 1
      xmlApp.go
  42. 1 1
      xmlCalcChain.go
  43. 1 1
      xmlChart.go
  44. 1 1
      xmlChartSheet.go
  45. 1 1
      xmlComments.go
  46. 1 1
      xmlContentTypes.go
  47. 1 1
      xmlCore.go
  48. 1 1
      xmlDecodeDrawing.go
  49. 1 1
      xmlDrawing.go
  50. 1 1
      xmlPivotCache.go
  51. 1 1
      xmlPivotTable.go
  52. 1 1
      xmlSharedStrings.go
  53. 1 1
      xmlStyles.go
  54. 1 1
      xmlTable.go
  55. 1 1
      xmlTheme.go
  56. 1 1
      xmlWorkbook.go
  57. 1 1
      xmlWorksheet.go

+ 0 - 4
.travis.yml

@@ -4,10 +4,6 @@ install:
   - go get -d -t -v ./... && go build -v ./...
 
 go:
-  - 1.11.x
-  - 1.12.x
-  - 1.13.x
-  - 1.14.x
   - 1.15.x
   - 1.16.x
 

+ 1 - 1
README.md

@@ -13,7 +13,7 @@
 
 ## Introduction
 
-Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLSX / XLSM / XLTM files. Supports reading and writing spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports complex components by high compatibility, and provided streaming API for generating or reading data from a worksheet with huge amounts of data. This library needs Go version 1.10 or later. The full API docs can be seen using go's built-in documentation tool, or online at [go.dev](https://pkg.go.dev/github.com/360EntSecGroup-Skylar/excelize/v2?tab=doc) and [docs reference](https://xuri.me/excelize/).
+Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLSX / XLSM / XLTM files. Supports reading and writing spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports complex components by high compatibility, and provided streaming API for generating or reading data from a worksheet with huge amounts of data. This library needs Go version 1.15 or later. The full API docs can be seen using go's built-in documentation tool, or online at [go.dev](https://pkg.go.dev/github.com/360EntSecGroup-Skylar/excelize/v2?tab=doc) and [docs reference](https://xuri.me/excelize/).
 
 ## Basic Usage
 

+ 1 - 1
README_zh.md

@@ -13,7 +13,7 @@
 
 ## 简介
 
-Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.10 或更高版本,完整的 API 使用文档请访问 [go.dev](https://pkg.go.dev/github.com/360EntSecGroup-Skylar/excelize/v2?tab=doc) 或查看 [参考文档](https://xuri.me/excelize/)。
+Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本,完整的 API 使用文档请访问 [go.dev](https://pkg.go.dev/github.com/360EntSecGroup-Skylar/excelize/v2?tab=doc) 或查看 [参考文档](https://xuri.me/excelize/)。
 
 ## 快速上手
 

+ 1 - 1
adjust.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 203 - 3
calc.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 
@@ -17,6 +17,7 @@ import (
 	"errors"
 	"fmt"
 	"math"
+	"math/cmplx"
 	"math/rand"
 	"net/url"
 	"reflect"
@@ -292,6 +293,15 @@ var tokenPriority = map[string]int{
 //    HLOOKUP
 //    IF
 //    IFERROR
+//    IMABS
+//    IMCOS
+//    IMCOSH
+//    IMCOT
+//    IMCSC
+//    IMCSCH
+//    IMEXP
+//    IMLN
+//    IMLOG10
 //    INT
 //    ISBLANK
 //    ISERR
@@ -1475,8 +1485,38 @@ func (fn *formulaFuncs) COMPLEX(argsList *list.List) formulaArg {
 			return newErrorFormulaArg(formulaErrorVALUE, formulaErrorVALUE)
 		}
 	}
-	r := strings.NewReplacer("(", "", ")", "", "0+", "", "+0i", "", "0+0i", "0", "i", suffix)
-	return newStringFormulaArg(r.Replace(fmt.Sprint(complex(real.Number, i.Number))))
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(complex(real.Number, i.Number)), suffix))
+}
+
+// cmplx2str replace complex number string characters.
+func cmplx2str(c, suffix string) string {
+	if c == "(0+0i)" || c == "(0-0i)" {
+		return "0"
+	}
+	c = strings.TrimPrefix(c, "(")
+	c = strings.TrimPrefix(c, "+0+")
+	c = strings.TrimPrefix(c, "-0+")
+	c = strings.TrimSuffix(c, ")")
+	c = strings.TrimPrefix(c, "0+")
+	if strings.HasPrefix(c, "0-") {
+		c = "-" + strings.TrimPrefix(c, "0-")
+	}
+	c = strings.TrimPrefix(c, "0+")
+	c = strings.TrimSuffix(c, "+0i")
+	c = strings.TrimSuffix(c, "-0i")
+	c = strings.NewReplacer("+1i", "i", "-1i", "-i").Replace(c)
+	c = strings.Replace(c, "i", suffix, -1)
+	return c
+}
+
+// str2cmplx convert complex number string characters.
+func str2cmplx(c string) string {
+	c = strings.Replace(c, "j", "i", -1)
+	if c == "i" {
+		c = "1i"
+	}
+	c = strings.NewReplacer("+i", "+1i", "-i", "-1i").Replace(c)
+	return c
 }
 
 // DEC2BIN function converts a decimal number into a Binary (Base 2) number.
@@ -1651,6 +1691,166 @@ func (fn *formulaFuncs) hex2dec(number string) formulaArg {
 	return newNumberFormulaArg(decimal)
 }
 
+// IMABS function returns the absolute value (the modulus) of a complex
+// number. The syntax of the function is:
+//
+//    IMABS(inumber)
+//
+func (fn *formulaFuncs) IMABS(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMABS requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(strings.Replace(argsList.Front().Value.(formulaArg).Value(), "j", "i", -1), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	return newNumberFormulaArg(cmplx.Abs(inumber))
+}
+
+// IMCOS function returns the cosine of a supplied complex number. The syntax
+// of the function is:
+//
+//    IMCOS(inumber)
+//
+func (fn *formulaFuncs) IMCOS(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMCOS requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(strings.Replace(argsList.Front().Value.(formulaArg).Value(), "j", "i", -1), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(cmplx.Cos(inumber)), "i"))
+}
+
+// IMCOSH function returns the hyperbolic cosine of a supplied complex number. The syntax
+// of the function is:
+//
+//    IMCOSH(inumber)
+//
+func (fn *formulaFuncs) IMCOSH(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMCOSH requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(cmplx.Cosh(inumber)), "i"))
+}
+
+// IMCOT function returns the cotangent of a supplied complex number. The syntax
+// of the function is:
+//
+//    IMCOT(inumber)
+//
+func (fn *formulaFuncs) IMCOT(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMCOT requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(cmplx.Cot(inumber)), "i"))
+}
+
+// IMCSC function returns the cosecant of a supplied complex number. The syntax
+// of the function is:
+//
+//    IMCSC(inumber)
+//
+func (fn *formulaFuncs) IMCSC(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMCSC requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	num := 1 / cmplx.Sin(inumber)
+	if cmplx.IsInf(num) {
+		return newErrorFormulaArg(formulaErrorNUM, formulaErrorNUM)
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(num), "i"))
+}
+
+// IMCSCH function returns the hyperbolic cosecant of a supplied complex
+// number. The syntax of the function is:
+//
+//    IMCSCH(inumber)
+//
+func (fn *formulaFuncs) IMCSCH(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMCSCH requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	num := 1 / cmplx.Sinh(inumber)
+	if cmplx.IsInf(num) {
+		return newErrorFormulaArg(formulaErrorNUM, formulaErrorNUM)
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(num), "i"))
+}
+
+// IMEXP function returns the exponential of a supplied complex number. The
+// syntax of the function is:
+//
+//    IMEXP(inumber)
+//
+func (fn *formulaFuncs) IMEXP(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMEXP requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(cmplx.Exp(inumber)), "i"))
+}
+
+// IMLN function returns the natural logarithm of a supplied complex number.
+// The syntax of the function is:
+//
+//    IMLN(inumber)
+//
+func (fn *formulaFuncs) IMLN(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMLN requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	num := cmplx.Log(inumber)
+	if cmplx.IsInf(num) {
+		return newErrorFormulaArg(formulaErrorNUM, formulaErrorNUM)
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(num), "i"))
+}
+
+// IMLOG10 function returns the common (base 10) logarithm of a supplied
+// complex number. The syntax of the function is:
+//
+//    IMLOG10(inumber)
+//
+func (fn *formulaFuncs) IMLOG10(argsList *list.List) formulaArg {
+	if argsList.Len() != 1 {
+		return newErrorFormulaArg(formulaErrorVALUE, "IMLOG10 requires 1 argument")
+	}
+	inumber, err := strconv.ParseComplex(str2cmplx(argsList.Front().Value.(formulaArg).Value()), 128)
+	if err != nil {
+		return newErrorFormulaArg(formulaErrorNUM, err.Error())
+	}
+	num := cmplx.Log10(inumber)
+	if cmplx.IsInf(num) {
+		return newErrorFormulaArg(formulaErrorNUM, formulaErrorNUM)
+	}
+	return newStringFormulaArg(cmplx2str(fmt.Sprint(num), "i"))
+}
+
 // OCT2BIN function converts an Octal (Base 8) number into a Binary (Base 2)
 // number. The syntax of the function is:
 //

+ 71 - 0
calc_test.go

@@ -90,6 +90,9 @@ func TestCalcCellValue(t *testing.T) {
 		"=COMPLEX(10,-5,\"i\")": "10-5i",
 		"=COMPLEX(0,5)":         "5i",
 		"=COMPLEX(3,0)":         "3",
+		"=COMPLEX(0,-2)":        "-2i",
+		"=COMPLEX(0,0)":         "0",
+		"=COMPLEX(0,-1,\"j\")":  "-j",
 		// DEC2BIN
 		"=DEC2BIN(2)":    "10",
 		"=DEC2BIN(3)":    "11",
@@ -127,6 +130,43 @@ func TestCalcCellValue(t *testing.T) {
 		"=HEX2OCT(\"8\",10)":       "0000000010",
 		"=HEX2OCT(\"FFFFFFFFF8\")": "7777777770",
 		"=HEX2OCT(\"1F3\")":        "763",
+		// IMABS
+		"=IMABS(\"2j\")":              "2",
+		"=IMABS(\"-1+2i\")":           "2.23606797749979",
+		"=IMABS(COMPLEX(-1,2,\"j\"))": "2.23606797749979",
+		// IMCOS
+		"=IMCOS(0)":          "1",
+		"=IMCOS(0.5)":        "0.877582561890373",
+		"=IMCOS(\"3+0.5i\")": "-1.1163412445261518-0.0735369737112366i",
+		// IMCOSH
+		"=IMCOSH(0.5)":           "1.127625965206381",
+		"=IMCOSH(\"3+0.5i\")":    "8.835204606500994+4.802825082743033i",
+		"=IMCOSH(\"2-i\")":       "2.0327230070196656-3.0518977991518i",
+		"=IMCOSH(COMPLEX(1,-1))": "0.8337300251311491-0.9888977057628651i",
+		// IMCOT
+		"=IMCOT(0.5)":           "1.830487721712452",
+		"=IMCOT(\"3+0.5i\")":    "-0.4793455787473728-2.016092521506228i",
+		"=IMCOT(\"2-i\")":       "-0.171383612909185+0.8213297974938518i",
+		"=IMCOT(COMPLEX(1,-1))": "0.21762156185440268+0.868014142895925i",
+		// IMCSC
+		"=IMCSC(\"j\")": "-0.8509181282393216i",
+		// IMCSCH
+		"=IMCSCH(COMPLEX(1,-1))": "0.30393100162842646+0.6215180171704284i",
+		// IMEXP
+		"=IMEXP(0)":             "1",
+		"=IMEXP(0.5)":           "1.648721270700128",
+		"=IMEXP(\"1-2i\")":      "-1.1312043837568135-2.4717266720048183i",
+		"=IMEXP(COMPLEX(1,-1))": "1.4686939399158851-2.2873552871788423i",
+		// IMLN
+		"=IMLN(0.5)":           "-0.693147180559945",
+		"=IMLN(\"3+0.5i\")":    "1.1123117757621668+0.16514867741462683i",
+		"=IMLN(\"2-i\")":       "0.8047189562170503-0.4636476090008061i",
+		"=IMLN(COMPLEX(1,-1))": "0.3465735902799727-0.7853981633974483i",
+		// IMLOG10
+		"=IMLOG10(0.5)":           "-0.301029995663981",
+		"=IMLOG10(\"3+0.5i\")":    "0.48307086636951624+0.07172315929479262i",
+		"=IMLOG10(\"2-i\")":       "0.34948500216800943-0.20135959813668655i",
+		"=IMLOG10(COMPLEX(1,-1))": "0.1505149978319906-0.3410940884604603i",
 		// OCT2BIN
 		"=OCT2BIN(\"5\")":          "101",
 		"=OCT2BIN(\"0000000001\")": "1",
@@ -1135,6 +1175,37 @@ func TestCalcCellValue(t *testing.T) {
 		"=HEX2OCT(1,\"\")":  "strconv.ParseFloat: parsing \"\": invalid syntax",
 		"=HEX2OCT(-513,10)": "strconv.ParseInt: parsing \"-\": invalid syntax",
 		"=HEX2OCT(1,-1)":    "#NUM!",
+		// IMABS
+		"=IMABS()":     "IMABS requires 1 argument",
+		"=IMABS(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		// IMCOS
+		"=IMCOS()":     "IMCOS requires 1 argument",
+		"=IMCOS(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		// IMCOSH
+		"=IMCOSH()":     "IMCOSH requires 1 argument",
+		"=IMCOSH(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		// IMCOT
+		"=IMCOT()":     "IMCOT requires 1 argument",
+		"=IMCOT(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		// IMCSC
+		"=IMCSC()":     "IMCSC requires 1 argument",
+		"=IMCSC(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		"=IMCSC(0)":    "#NUM!",
+		// IMCSCH
+		"=IMCSCH()":     "IMCSCH requires 1 argument",
+		"=IMCSCH(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		"=IMCSCH(0)":    "#NUM!",
+		// IMEXP
+		"=IMEXP()":     "IMEXP requires 1 argument",
+		"=IMEXP(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		// IMLN
+		"=IMLN()":     "IMLN requires 1 argument",
+		"=IMLN(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		"=IMLN(0)":    "#NUM!",
+		// IMLOG10
+		"=IMLOG10()":     "IMLOG10 requires 1 argument",
+		"=IMLOG10(\"\")": "strconv.ParseComplex: parsing \"\": invalid syntax",
+		"=IMLOG10(0)":    "#NUM!",
 		// OCT2BIN
 		"=OCT2BIN()":               "OCT2BIN requires at least 1 argument",
 		"=OCT2BIN(1,1,1)":          "OCT2BIN allows at most 2 arguments",

+ 1 - 1
calcchain.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
cell.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
chart.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
col.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
comment.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
comment_test.go

@@ -5,7 +5,7 @@
 // Package excelize providing a set of functions that allow you to write to
 // and read from XLSX files. Support reads and writes XLSX file generated by
 // Microsoft Excel™ 2007 and later. Support save file without losing original
-// charts of XLSX. This library needs Go version 1.10 or later.
+// charts of XLSX. This library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
crypt.go

@@ -5,7 +5,7 @@
 // Package excelize providing a set of functions that allow you to write to
 // and read from XLSX files. Support reads and writes XLSX file generated by
 // Microsoft Excel™ 2007 and later. Support save file without losing original
-// charts of XLSX. This library needs Go version 1.10 or later.
+// charts of XLSX. This library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
crypt_test.go

@@ -5,7 +5,7 @@
 // Package excelize providing a set of functions that allow you to write to
 // and read from XLSX files. Support reads and writes XLSX file generated by
 // Microsoft Excel™ 2007 and later. Support save file without losing original
-// charts of XLSX. This library needs Go version 1.10 or later.
+// charts of XLSX. This library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
datavalidation.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
datavalidation_test.go

@@ -5,7 +5,7 @@
 // Package excelize providing a set of functions that allow you to write to
 // and read from XLSX files. Support reads and writes XLSX file generated by
 // Microsoft Excel™ 2007 and later. Support save file without losing original
-// charts of XLSX. This library needs Go version 1.10 or later.
+// charts of XLSX. This library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
date.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
docProps.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
docProps_test.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
drawing.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
drawing_test.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
errors.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
excelize.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 //
 // See https://xuri.me/excelize for more information about this package.
 package excelize

+ 1 - 1
file.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
go.mod

@@ -1,6 +1,6 @@
 module github.com/360EntSecGroup-Skylar/excelize/v2
 
-go 1.11
+go 1.15
 
 require (
 	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826

+ 1 - 1
lib.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
merge.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
picture.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
pivotTable.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
rows.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
shape.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
sheet.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
sheetpr.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
sheetview.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
sparkline.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
stream.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
styles.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
table.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
templates.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 //
 // This file contains default templates for XML files we don't yet populated
 // based on content.

+ 1 - 1
vmlDrawing.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlApp.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlCalcChain.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlChart.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlChartSheet.go

@@ -7,7 +7,7 @@
 // Package excelize providing a set of functions that allow you to write to
 // and read from XLSX files. Support reads and writes XLSX file generated by
 // Microsoft Excel™ 2007 and later. Support save file without losing original
-// charts of XLSX. This library needs Go version 1.10 or later.
+// charts of XLSX. This library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlComments.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlContentTypes.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlCore.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlDecodeDrawing.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlDrawing.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlPivotCache.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlPivotTable.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlSharedStrings.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlStyles.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlTable.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlTheme.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlWorkbook.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize
 

+ 1 - 1
xmlWorksheet.go

@@ -7,7 +7,7 @@
 // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
 // complex components by high compatibility, and provided streaming API for
 // generating or reading data from a worksheet with huge amounts of data. This
-// library needs Go version 1.10 or later.
+// library needs Go version 1.15 or later.
 
 package excelize