summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/FUNDING.yml6
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--README.md22
-rw-r--r--README_zh.md22
-rw-r--r--cell.go4
-rw-r--r--cell_test.go2
-rw-r--r--chart.go4
-rw-r--r--col_test.go4
-rw-r--r--excelize_test.go10
-rw-r--r--go.mod2
-rw-r--r--merge_test.go2
-rw-r--r--picture.go6
-rw-r--r--picture_test.go2
-rw-r--r--pivotTable.go2
-rw-r--r--rows_test.go4
15 files changed, 51 insertions, 45 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..ff137eb
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,6 @@
+patreon: xuri
+open_collective: excelize
+ko_fi: xurime
+liberapay: xuri
+issuehunt: xuri
+custom: https://www.paypal.com/paypalme/xuri \ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 53c650e..89bc60e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -31,7 +31,7 @@ A great way to contribute to the project is to send a detailed report when you
encounter an issue. We always appreciate a well-written, thorough bug report,
and will thank you for it!
-Check that [our issue database](https://github.com/360EntSecGroup-Skylar/excelize/issues)
+Check that [our issue database](https://github.com/xuri/excelize/issues)
doesn't already include that problem or suggestion before submitting an issue.
If you find a match, you can use the "subscribe" button to get notified on
updates. Do *not* leave random "+1" or "I have this too" comments, as they
@@ -55,7 +55,7 @@ This section gives the experienced contributor some tips and guidelines.
Not sure if that typo is worth a pull request? Found a bug and know how to fix
it? Do it! We will appreciate it. Any significant improvement should be
-documented as [a GitHub issue](https://github.com/360EntSecGroup-Skylar/excelize/issues) before
+documented as [a GitHub issue](https://github.com/xuri/excelize/issues) before
anybody starts working on it.
We are always thrilled to receive pull requests. We do our best to process them
diff --git a/README.md b/README.md
index 972d013..3c49173 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
<p align="center"><img width="650" src="./excelize.svg" alt="Excelize logo"></p>
<p align="center">
- <a href="https://github.com/360EntSecGroup-Skylar/excelize/actions/workflows/go.yml"><img src="https://github.com/360EntSecGroup-Skylar/excelize/actions/workflows/go.yml/badge.svg" alt="Build Status"></a>
- <a href="https://codecov.io/gh/360EntSecGroup-Skylar/excelize"><img src="https://codecov.io/gh/360EntSecGroup-Skylar/excelize/branch/master/graph/badge.svg" alt="Code Coverage"></a>
- <a href="https://goreportcard.com/report/github.com/360EntSecGroup-Skylar/excelize"><img src="https://goreportcard.com/badge/github.com/360EntSecGroup-Skylar/excelize" alt="Go Report Card"></a>
- <a href="https://pkg.go.dev/github.com/360EntSecGroup-Skylar/excelize/v2?tab=doc"><img src="https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white" alt="go.dev"></a>
+ <a href="https://github.com/xuri/excelize/actions/workflows/go.yml"><img src="https://github.com/xuri/excelize/actions/workflows/go.yml/badge.svg" alt="Build Status"></a>
+ <a href="https://codecov.io/gh/qax-os/excelize"><img src="https://codecov.io/gh/qax-os/excelize/branch/master/graph/badge.svg" alt="Code Coverage"></a>
+ <a href="https://goreportcard.com/report/github.com/xuri/excelize"><img src="https://goreportcard.com/badge/github.com/xuri/excelize" alt="Go Report Card"></a>
+ <a href="https://pkg.go.dev/github.com/xuri/excelize/v2?tab=doc"><img src="https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white" alt="go.dev"></a>
<a href="https://opensource.org/licenses/BSD-3-Clause"><img src="https://img.shields.io/badge/license-bsd-orange.svg" alt="Licenses"></a>
<a href="https://www.paypal.com/paypalme/xuri"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg" alt="Donate"></a>
</p>
@@ -13,20 +13,20 @@
## 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 / XLTX files. Supports reading and writing spreadsheet documents generated by Microsoft Excel&trade; 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/).
+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 / XLTX files. Supports reading and writing spreadsheet documents generated by Microsoft Excel&trade; 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/xuri/excelize/v2?tab=doc) and [docs reference](https://xuri.me/excelize/).
## Basic Usage
### Installation
```bash
-go get github.com/360EntSecGroup-Skylar/excelize
+go get github.com/xuri/excelize
```
- If your packages are managed using [Go Modules](https://blog.golang.org/using-go-modules), please install with following command.
```bash
-go get github.com/360EntSecGroup-Skylar/excelize/v2
+go get github.com/xuri/excelize/v2
```
### Create spreadsheet
@@ -39,7 +39,7 @@ package main
import (
"fmt"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
@@ -68,7 +68,7 @@ package main
import (
"fmt"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
@@ -111,7 +111,7 @@ package main
import (
"fmt"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
@@ -171,7 +171,7 @@ import (
_ "image/jpeg"
_ "image/png"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
diff --git a/README_zh.md b/README_zh.md
index 4e1f56f..6015a44 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -1,10 +1,10 @@
<p align="center"><img width="650" src="./excelize.svg" alt="Excelize logo"></p>
<p align="center">
- <a href="https://github.com/360EntSecGroup-Skylar/excelize/actions/workflows/go.yml"><img src="https://github.com/360EntSecGroup-Skylar/excelize/actions/workflows/go.yml/badge.svg" alt="Build Status"></a>
- <a href="https://codecov.io/gh/360EntSecGroup-Skylar/excelize"><img src="https://codecov.io/gh/360EntSecGroup-Skylar/excelize/branch/master/graph/badge.svg" alt="Code Coverage"></a>
- <a href="https://goreportcard.com/report/github.com/360EntSecGroup-Skylar/excelize"><img src="https://goreportcard.com/badge/github.com/360EntSecGroup-Skylar/excelize" alt="Go Report Card"></a>
- <a href="https://pkg.go.dev/github.com/360EntSecGroup-Skylar/excelize/v2?tab=doc"><img src="https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white" alt="go.dev"></a>
+ <a href="https://github.com/xuri/excelize/actions/workflows/go.yml"><img src="https://github.com/xuri/excelize/actions/workflows/go.yml/badge.svg" alt="Build Status"></a>
+ <a href="https://codecov.io/gh/qax-os/excelize"><img src="https://codecov.io/gh/qax-os/excelize/branch/master/graph/badge.svg" alt="Code Coverage"></a>
+ <a href="https://goreportcard.com/report/github.com/xuri/excelize"><img src="https://goreportcard.com/badge/github.com/xuri/excelize" alt="Go Report Card"></a>
+ <a href="https://pkg.go.dev/github.com/xuri/excelize/v2?tab=doc"><img src="https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white" alt="go.dev"></a>
<a href="https://opensource.org/licenses/BSD-3-Clause"><img src="https://img.shields.io/badge/license-bsd-orange.svg" alt="Licenses"></a>
<a href="https://www.paypal.com/paypalme/xuri"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg" alt="Donate"></a>
</p>
@@ -13,20 +13,20 @@
## 简介
-Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel&trade; 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本,完整的 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&trade; 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本,完整的 API 使用文档请访问 [go.dev](https://pkg.go.dev/github.com/xuri/excelize/v2?tab=doc) 或查看 [参考文档](https://xuri.me/excelize/)。
## 快速上手
### 安装
```bash
-go get github.com/360EntSecGroup-Skylar/excelize
+go get github.com/xuri/excelize
```
- 如果您使用 [Go Modules](https://blog.golang.org/using-go-modules) 管理软件包,请使用下面的命令来安装最新版本。
```bash
-go get github.com/360EntSecGroup-Skylar/excelize/v2
+go get github.com/xuri/excelize/v2
```
### 创建 Excel 文档
@@ -39,7 +39,7 @@ package main
import (
"fmt"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
@@ -68,7 +68,7 @@ package main
import (
"fmt"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
@@ -111,7 +111,7 @@ package main
import (
"fmt"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
@@ -171,7 +171,7 @@ import (
_ "image/jpeg"
_ "image/png"
- "github.com/360EntSecGroup-Skylar/excelize/v2"
+ "github.com/xuri/excelize/v2"
)
func main() {
diff --git a/cell.go b/cell.go
index 82e93c5..39990d4 100644
--- a/cell.go
+++ b/cell.go
@@ -468,7 +468,7 @@ type HyperlinkOpts struct {
// in this workbook. Maximum limit hyperlinks in a worksheet is 65530. The
// below is example for external link.
//
-// err := f.SetCellHyperLink("Sheet1", "A3", "https://github.com/360EntSecGroup-Skylar/excelize", "External")
+// err := f.SetCellHyperLink("Sheet1", "A3", "https://github.com/xuri/excelize", "External")
// // Set underline and font color style for the cell.
// style, err := f.NewStyle(`{"font":{"color":"#1265BE","underline":"single"}}`)
// err = f.SetCellStyle("Sheet1", "A3", "A3", style)
@@ -594,7 +594,7 @@ func (f *File) GetCellRichText(sheet, cell string) (runs []RichTextRun, err erro
// import (
// "fmt"
//
-// "github.com/360EntSecGroup-Skylar/excelize/v2"
+// "github.com/xuri/excelize/v2"
// )
//
// func main() {
diff --git a/cell_test.go b/cell_test.go
index f11c708..ea62869 100644
--- a/cell_test.go
+++ b/cell_test.go
@@ -41,7 +41,7 @@ func TestConcurrency(t *testing.T) {
assert.NoError(t, f.SetCellStyle("Sheet1", "A3", "A3", style))
// Concurrency add picture
assert.NoError(t, f.AddPicture("Sheet1", "F21", filepath.Join("test", "images", "excel.jpg"),
- `{"x_offset": 10, "y_offset": 10, "hyperlink": "https://github.com/360EntSecGroup-Skylar/excelize", "hyperlink_type": "External", "positioning": "oneCell"}`))
+ `{"x_offset": 10, "y_offset": 10, "hyperlink": "https://github.com/xuri/excelize", "hyperlink_type": "External", "positioning": "oneCell"}`))
// Concurrency get cell picture
name, raw, err := f.GetPicture("Sheet1", "A1")
assert.Equal(t, "", name)
diff --git a/chart.go b/chart.go
index 52fd543..755c160 100644
--- a/chart.go
+++ b/chart.go
@@ -510,7 +510,7 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) {
// import (
// "fmt"
//
-// "github.com/360EntSecGroup-Skylar/excelize/v2"
+// "github.com/xuri/excelize/v2"
// )
//
// func main() {
@@ -783,7 +783,7 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) {
// import (
// "fmt"
//
-// "github.com/360EntSecGroup-Skylar/excelize/v2"
+// "github.com/xuri/excelize/v2"
// )
//
// func main() {
diff --git a/col_test.go b/col_test.go
index 58f424b..b19eadf 100644
--- a/col_test.go
+++ b/col_test.go
@@ -338,7 +338,7 @@ func TestInsertCol(t *testing.T) {
fillCells(f, sheet1, 10, 10)
- assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/xuri/excelize", "External"))
assert.NoError(t, f.MergeCell(sheet1, "A1", "C3"))
assert.NoError(t, f.AutoFilter(sheet1, "A2", "B2", `{"column":"B","expression":"x != blanks"}`))
@@ -356,7 +356,7 @@ func TestRemoveCol(t *testing.T) {
fillCells(f, sheet1, 10, 15)
- assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/xuri/excelize", "External"))
assert.NoError(t, f.SetCellHyperLink(sheet1, "C5", "https://github.com", "External"))
assert.NoError(t, f.MergeCell(sheet1, "A1", "B1"))
diff --git a/excelize_test.go b/excelize_test.go
index 8a5ea27..cc3a1b2 100644
--- a/excelize_test.go
+++ b/excelize_test.go
@@ -322,9 +322,9 @@ func TestSetCellHyperLink(t *testing.T) {
t.Log(err)
}
// Test set cell hyperlink in a work sheet already have hyperlinks.
- assert.NoError(t, f.SetCellHyperLink("Sheet1", "B19", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink("Sheet1", "B19", "https://github.com/xuri/excelize", "External"))
// Test add first hyperlink in a work sheet.
- assert.NoError(t, f.SetCellHyperLink("Sheet2", "C1", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink("Sheet2", "C1", "https://github.com/xuri/excelize", "External"))
// Test add Location hyperlink in a work sheet.
assert.NoError(t, f.SetCellHyperLink("Sheet2", "D6", "Sheet1!D8", "Location"))
// Test add Location hyperlink with display & tooltip in a work sheet.
@@ -347,7 +347,7 @@ func TestSetCellHyperLink(t *testing.T) {
ws, ok := f.Sheet.Load("xl/worksheets/sheet1.xml")
assert.True(t, ok)
ws.(*xlsxWorksheet).Hyperlinks = &xlsxHyperlinks{Hyperlink: make([]xlsxHyperlink, 65530)}
- assert.EqualError(t, f.SetCellHyperLink("Sheet1", "A65531", "https://github.com/360EntSecGroup-Skylar/excelize", "External"), ErrTotalSheetHyperlinks.Error())
+ assert.EqualError(t, f.SetCellHyperLink("Sheet1", "A65531", "https://github.com/xuri/excelize", "External"), ErrTotalSheetHyperlinks.Error())
f = NewFile()
_, err = f.workSheetReader("Sheet1")
@@ -355,7 +355,7 @@ func TestSetCellHyperLink(t *testing.T) {
ws, ok = f.Sheet.Load("xl/worksheets/sheet1.xml")
assert.True(t, ok)
ws.(*xlsxWorksheet).MergeCells = &xlsxMergeCells{Cells: []*xlsxMergeCell{{Ref: "A:A"}}}
- err = f.SetCellHyperLink("Sheet1", "A1", "https://github.com/360EntSecGroup-Skylar/excelize", "External")
+ err = f.SetCellHyperLink("Sheet1", "A1", "https://github.com/xuri/excelize", "External")
assert.EqualError(t, err, `cannot convert cell "A" to coordinates: invalid cell name "A"`)
}
@@ -1272,7 +1272,7 @@ func prepareTestBook1() (*File, error) {
// Test add picture to worksheet with offset, external hyperlink and positioning.
err = f.AddPicture("Sheet1", "F21", filepath.Join("test", "images", "excel.png"),
- `{"x_offset": 10, "y_offset": 10, "hyperlink": "https://github.com/360EntSecGroup-Skylar/excelize", "hyperlink_type": "External", "positioning": "oneCell"}`)
+ `{"x_offset": 10, "y_offset": 10, "hyperlink": "https://github.com/xuri/excelize", "hyperlink_type": "External", "positioning": "oneCell"}`)
if err != nil {
return nil, err
}
diff --git a/go.mod b/go.mod
index 78ae93c..877b924 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/360EntSecGroup-Skylar/excelize/v2
+module github.com/xuri/excelize/v2
go 1.15
diff --git a/merge_test.go b/merge_test.go
index cf460dd..41c122c 100644
--- a/merge_test.go
+++ b/merge_test.go
@@ -24,7 +24,7 @@ func TestMergeCell(t *testing.T) {
assert.NoError(t, f.SetCellValue("Sheet1", "G11", "set value in merged cell"))
assert.NoError(t, f.SetCellInt("Sheet1", "H11", 100))
assert.NoError(t, f.SetCellValue("Sheet1", "I11", float64(0.5)))
- assert.NoError(t, f.SetCellHyperLink("Sheet1", "J11", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink("Sheet1", "J11", "https://github.com/xuri/excelize", "External"))
assert.NoError(t, f.SetCellFormula("Sheet1", "G12", "SUM(Sheet1!B19,Sheet1!C19)"))
value, err := f.GetCellValue("Sheet1", "H11")
assert.Equal(t, "0.5", value)
diff --git a/picture.go b/picture.go
index e524224..0531272 100644
--- a/picture.go
+++ b/picture.go
@@ -54,7 +54,7 @@ func parseFormatPictureSet(formatSet string) (*formatPicture, error) {
// _ "image/jpeg"
// _ "image/png"
//
-// "github.com/360EntSecGroup-Skylar/excelize/v2"
+// "github.com/xuri/excelize/v2"
// )
//
// func main() {
@@ -68,7 +68,7 @@ func parseFormatPictureSet(formatSet string) (*formatPicture, error) {
// fmt.Println(err)
// }
// // Insert a picture offset in the cell with external hyperlink, printing and positioning support.
-// if err := f.AddPicture("Sheet1", "H2", "image.gif", `{"x_offset": 15, "y_offset": 10, "hyperlink": "https://github.com/360EntSecGroup-Skylar/excelize", "hyperlink_type": "External", "print_obj": true, "lock_aspect_ratio": false, "locked": false, "positioning": "oneCell"}`); err != nil {
+// if err := f.AddPicture("Sheet1", "H2", "image.gif", `{"x_offset": 15, "y_offset": 10, "hyperlink": "https://github.com/xuri/excelize", "hyperlink_type": "External", "print_obj": true, "lock_aspect_ratio": false, "locked": false, "positioning": "oneCell"}`); err != nil {
// fmt.Println(err)
// }
// if err := f.SaveAs("Book1.xlsx"); err != nil {
@@ -110,7 +110,7 @@ func (f *File) AddPicture(sheet, cell, picture, format string) error {
// _ "image/jpeg"
// "io/ioutil"
//
-// "github.com/360EntSecGroup-Skylar/excelize/v2"
+// "github.com/xuri/excelize/v2"
// )
//
// func main() {
diff --git a/picture_test.go b/picture_test.go
index 69873eb..913ed3d 100644
--- a/picture_test.go
+++ b/picture_test.go
@@ -42,7 +42,7 @@ func TestAddPicture(t *testing.T) {
`{"x_offset": 140, "y_offset": 120, "hyperlink": "#Sheet2!D8", "hyperlink_type": "Location"}`))
// Test add picture to worksheet with offset, external hyperlink and positioning.
assert.NoError(t, f.AddPicture("Sheet1", "F21", filepath.Join("test", "images", "excel.jpg"),
- `{"x_offset": 10, "y_offset": 10, "hyperlink": "https://github.com/360EntSecGroup-Skylar/excelize", "hyperlink_type": "External", "positioning": "oneCell"}`))
+ `{"x_offset": 10, "y_offset": 10, "hyperlink": "https://github.com/xuri/excelize", "hyperlink_type": "External", "positioning": "oneCell"}`))
file, err := ioutil.ReadFile(filepath.Join("test", "images", "excel.png"))
assert.NoError(t, err)
diff --git a/pivotTable.go b/pivotTable.go
index 05ac783..f6d6d2d 100644
--- a/pivotTable.go
+++ b/pivotTable.go
@@ -82,7 +82,7 @@ type PivotTableField struct {
// "fmt"
// "math/rand"
//
-// "github.com/360EntSecGroup-Skylar/excelize/v2"
+// "github.com/xuri/excelize/v2"
// )
//
// func main() {
diff --git a/rows_test.go b/rows_test.go
index e07ecf1..7682469 100644
--- a/rows_test.go
+++ b/rows_test.go
@@ -232,7 +232,7 @@ func TestRemoveRow(t *testing.T) {
)
fillCells(f, sheet1, colCount, rowCount)
- assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/xuri/excelize", "External"))
assert.EqualError(t, f.RemoveRow(sheet1, -1), "invalid row number -1")
@@ -293,7 +293,7 @@ func TestInsertRow(t *testing.T) {
)
fillCells(f, sheet1, colCount, rowCount)
- assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/360EntSecGroup-Skylar/excelize", "External"))
+ assert.NoError(t, f.SetCellHyperLink(sheet1, "A5", "https://github.com/xuri/excelize", "External"))
assert.EqualError(t, f.InsertRow(sheet1, -1), "invalid row number -1")