Commit Graph

234 Commits

Author SHA1 Message Date
xuri f0244c0016
Add unit test to improve testing coverage 2019-03-24 13:08:32 +08:00
xuri 40ff5dc1a7
refactor: handler error instead of panic,
Exported functions:

SetCellStyle
InsertCol
RemoveCol
RemoveRow
InsertRow
DuplicateRow
DuplicateRowTo
SetRowHeight
GetRowHeight
GetCellValue
GetCellFormula
GetCellHyperLink
SetCellHyperLink
SetCellInt
SetCellBool
SetCellFloat
SetCellStr
SetCellDefault
GetCellStyle
SetCellValue
MergeCell
SetSheetRow
SetRowVisible
GetRowVisible
SetRowOutlineLevel
GetRowOutlineLevel
GetRows
Columns
SearchSheet
AddTable
GetPicture
AutoFilter
GetColVisible
SetColVisible
GetColOutlineLevel
SetColOutlineLevel
SetColWidth
GetColWidth

inner functions:

adjustHelper
adjustMergeCells
adjustAutoFilter
prepareCell
setDefaultTimeStyle
timeToExcelTime
addDrawingChart
addDrawingVML
addDrawingPicture
getTotalRowsCols
checkRow
addDrawingShape
addTable
2019-03-23 20:08:06 +08:00
xuri 40ea8eb014
resolve #360, fix axis parse issue when add / get pictures;
typo fixed and go test updated
2019-03-20 16:52:33 +08:00
Veniamin Albaev dc01264562 Huge refactorig for consistent col/row numbering (#356)
* Huge refactorig for consistent col/row numbering

Started from simply changing ToALphaString()/TitleToNumber() logic and related fixes.
But have to go deeper, do fixes, after do related fixes and again and again.

Major improvements:

1. Tests made stronger again (But still be weak).
2. "Empty" returns for incorrect input replaces with panic.
3. Check for correct col/row/cell naming & addressing by default.
4. Removed huge amount of duplicated code.
5. Removed ToALphaString(), TitleToNumber() and it helpers functions at all,
and replaced with SplitCellName(), JoinCellName(), ColumnNameToNumber(), ColumnNumberToName(), CellNameToCoordinates(), CoordinatesToCellName().
6. Minor fixes for internal variable naming for code readability (ex. col, row for input params, colIdx, rowIdx for slice indexes etc).

* Formatting fixes
2019-03-20 00:14:41 +08:00
caozhiyi b974df402a update go test and function docs 2019-03-07 16:03:31 +08:00
Veniamin Albaev 12c1e2481e Implement consistent row addressing by Excel row number starting with 1 (#350)
* Implement consistent row addressing by Excel row number starting with 1

1. Added second versions for all row manipulation methods with zero-based row addressing.
2. Fixed methods documentation to explicitly describe which row addressing used in method.
3. Added WARNING to README.md.
4. Cosmetic change: All row test moved to file `rows_test.go`.

* TravisCI: go1.12 added to tests matrix

* BACKWARD INCOMPARTIBLE: Use only Excel numbering logic from 1 row

* README updated
2019-03-06 21:40:45 +08:00
xuri 1aed1d744b
Resolve #274, performance optimization for add images, charts and shapes 2019-02-25 22:14:34 +08:00
xuri 0072bb7310
resolve the issue corrupted xlsx after deleting formula of cell, reference #346 2019-02-22 22:17:38 +08:00
Olivier Mengué e780e41e02 Faster TitleToNumber (#343)
* TestTitleToNumber: more test cases

* TitleToNumber: drop use of math.Pow()

Compute using pure integers

* TitleToNumber: simplify

Remove unecessary casts to int
2019-02-02 11:05:01 +08:00
Veniamin Albaev 725c1a0c40 New feature: File.DuplicateRowTo() duplicate row to specified row position.
DuplicateRowTo() is similar to DuplicateRow() but copies specified row not just after specified source row
but to any other specified position below or above source row.

Also I made minor modifications of tests: using filepath.Join() instead of direct unix-way paths strings
to avoid possible tests fails on other OS.
2019-01-10 14:29:19 +03:00
xuri fabd9d013f
README updated 2019-01-01 13:20:14 +08:00
Veniamin Albaev 35426ed5dc Tests refactoring
Primary motivation: Avoid statefull tests with not ignorable git file tree changes.
Multiple tests reads and overwrites signle file for won needs.
Multiple tests reads and overwrites file under version control.

Secondary motivation: Minimal tests logic aligment, separate error expectation
and not error expectation tests. Introduce sub-test over test data sets and so far.

This commit is not ideal but necessary (IMHO)
2018-12-27 13:51:44 +03:00
xuri 9a6f66a996
New feature: the function `SearchSheet` now support regular expression, relate pull request #316 2018-12-26 14:48:14 +08:00
Veniamin Albaev 7b7ca99f5d Duplicate row (#317)
* go mod tidy applied

* File.DuplicateRow() method added
2018-12-26 13:33:40 +08:00
r-uchino 9b8baf75ad Add RegSearchSheet (#316) 2018-12-26 13:30:59 +08:00
xuri b04107c4a3
Resolve #311, create 2D/3D area, stacked area, 100% stacked area chart support 2018-12-23 00:07:47 +08:00
xuri 3ca3156d45
Merge pull request #313 from sairoutine/feature/get_merge_cells
Add GetMergeCells
2018-12-19 23:32:12 +08:00
sairoutine 3012df08eb Add GetMergeCells 2018-12-19 20:54:38 +09:00
xuri b89f75c896
Add new logo for excelize 2018-12-05 00:27:19 +08:00
q523591 51857a217d New function `UnprotectSheet()` has been added 2018-11-04 23:14:43 +08:00
HcySunYang 4dbc78ce0a resolve #273 new feature: protect sheet support
new feature: protect sheet support, relate issue #273
2018-11-02 23:08:31 +08:00
covv 75edf1ac7d Add testing case for the function `SearchSheet()`. 2018-10-27 22:54:17 +08:00
xuri 90bdd3632f
Fix the issue caused by missing tradition to strict conversion for `sharedStringsReader()`, relate issue #276 2018-10-18 10:23:08 +08:00
lizheao 2be4d45c62 feat: add new function and refactor writeto action
* add new exported function to get Excel file content buffer

* refactor the WriteTo function
2018-10-12 10:25:10 +08:00
xuri 6ced438f39
New function `AddPictureFromBytes()` has been added, this resolve #259 and close #271. 2018-09-14 00:24:49 +08:00
xuri a3571ee39b
Bugfix: create worksheet cause file issue. Relate issue #249. 2018-07-17 15:28:22 +08:00
xuri 58a7b23d11
Merge pull request #246 from nad2000/retrieve-comments
added retrieval of worksheet comments
2018-07-10 10:10:38 +08:00
xuri d6468fc114
- Initialize theme support;
- RGBA, HSL color convert has been added;
- go test updated
2018-07-07 15:59:48 +08:00
Rad Cirskis 1a953b6601 added unit tests 2018-06-30 22:55:14 +12:00
Olivier Mengué 4a1b406456 CopySheet() using reflect instead of encoding/gob
Use github.com/mohae/deepcopy to deep copy worksheets instead of the
internal deepcopy function that was using encoding/gob serialization and
deserialization.

Rationale:
1/ using `encoding/gob` is much slower than
   [`mohae/deepcopy`](https://github.com/mohae/deepcopy/)
2/ When building an application this implementation of `deepcopy` drags
   the `encoding/gob` package into the binary. And this package is much
   bigger than `mohae/deepcopy` (which only depends on `time` and `reflect`).

```
$ LC_ALL=C stat -f "%6z %N" $(go env GOPATH)/pkg/$(go env GOOS)_$(go env GOARCH)/github.com/mohae/deepcopy.a $(go env GOROOT)/pkg/$(go env GOOS)_$(go env GOARCH)/encoding/gob.a
 10508 .../pkg/darwin_amd64/github.com/mohae/deepcopy.a
541818 .../pkg/darwin_amd64/encoding/gob.a
```
2018-06-14 17:54:31 +02:00
xuri 9e463b4614
- Add error return value for functions: `AddChart()`, `AddComment()`, `AddPicture()`, `AddShape()`, `AddTable()` and `SetConditionalFormat()`
- go test has been updated
2018-05-27 11:25:55 +08:00
xuri aaced358f1
- Initialize shared formula types support, relate issue #227;
- go test and godoc has been updated
2018-05-26 16:23:15 +08:00
xuri d96440edc4
- Performance optimization 20% faster, 14% memory savings on set cell values;
- Using the canonical syntax in issue template and contributing guide;
- go test has been updated
2018-05-15 21:00:56 +08:00
xuri 167554bfec
Improve unit testing, remove redundant code. 2018-05-14 10:12:46 +08:00
xuri eb62256d16
Simplify testing code, add test case for outline functions and update the godoc. 2018-05-11 10:14:18 +08:00
xuri e8961f0aff
- Bugfix: set font family not works, relate issue #222;
- Remove useless function `replaceWorkSheetsRelationshipsNameSpace()`;
- Make test cases use strict error checking
2018-05-08 10:36:13 +08:00
Ri Xu 3ca180f09c
Merge test cases and use strict error checking. 2018-05-07 16:14:35 +08:00
Ri Xu 934ecec1a9
- Set name of table support in `AddTable()`, relate issue #216;
- godoc and go test has been updated
2018-05-04 11:20:51 +08:00
Ri Xu a9c7d6637c
- Support to set the positioning of a picture, relate issue #214;
- go test and godoc has been updated
2018-04-26 11:41:13 +08:00
Ri Xu 9ee57fdb38
Fix typo and adding Chinese version document. 2018-04-23 00:14:58 +08:00
Ri Xu 564ebe48dd
- Fix `checkCellInArea()` index out of range when merged cell ref is single coordinate, relate issue #206;
- go test updated;
- Repository icon for SourceTree has been added
2018-04-08 10:31:11 +08:00
Ri Xu a6fc5a721d
- Make row index consistent in function `SetRowHeight` and `GetRowHeight`, fix issue #205;
- go test and godoc has been updated
2018-04-02 10:59:15 +08:00
Ri Xu dcbde4b831
- Add categories or values on reverse order (orientation of the chart) support, and set auto or fixed maximum, minimum of the axis, relate issue #202;
- go test and godoc has been updated
2018-03-29 20:17:07 +08:00
Ri Xu d65b30055d
- Update the function `NewSheet()` to handle when already exists a worksheet of the same name, relate pull request #196;
- go test and godoc has been updated
2018-03-16 20:54:07 +08:00
Ri Xu 770026e956
- New function `SetSheetRow()` has been added for support write whole line at once, relate issue #96 and #194;
- go test and godoc updated;
- Note that this function performance has not been tested
2018-03-12 20:14:39 +08:00
Ri Xu ecc3adf22a
- Add protection properties associated with the cell support, relate issue #191;
- godoc and go test has been updated
2018-03-07 12:56:18 +08:00
Ri Xu 06e54bf1c6
Readme and godoc has been updated. 2018-03-06 10:36:12 +08:00
Ri Xu 45c31c4764
- Update the function `AddChart()`: clustered, stacked and 100% stacked bar and column series charts supported, relate issue #190;
- go test and godoc has been updated
2018-03-05 21:23:52 +08:00
Ri Xu b1b056e0eb
Handle special shared string table file name `xl/SharedStrings.xml`, relate issue #188 2018-03-02 10:19:40 +08:00
Ri Xu 9d7b94d760
Update godoc to make charts compatibility with WPS, relate issue #187. 2018-02-12 11:45:42 +08:00
Ri Xu 7621927573
- Add a hyperlink to an image support for the function `AddPicture()`, relate issue #185;
- go test and document has been updated.
2018-02-03 15:02:37 +08:00
dvelderp b25ec6e9d3 xlsx.SetCellValue() now supports bool value 2018-01-25 18:08:26 +01:00
Ri Xu 50cdaed5a3
- Add 3D column and 3D 100% stacked column chart support, relate issue #160;
- go test updated
2018-01-08 23:03:59 +08:00
Ri Xu 52b1a8e896
- Function `SetCellValue()` time.Duration support added, relate issue #176;
- go test updated
2018-01-05 09:39:31 +08:00
xuri 443695732e
Merge pull request #153 from jinzhu/master
Rename import path to github.com/360EntSecGroup-Skylar/excelize
2017-12-01 16:50:07 +08:00
Rohan Allison cc1d3fefc2 Add stacked bar chart 2017-11-24 11:29:35 -06:00
Jinzhu 21214a514d Rename import path to github.com/360EntSecGroup-Skylar/excelize 2017-11-16 11:07:39 +08:00
Ri Xu f10ee929d0
- Bugfix: use sheet name in func `AddPicture`, relate issue #142;
- godoc updated
2017-10-31 16:33:36 +08:00
Ri Xu b4ffa8ce48
- Add unsigned integer data type support, related issue #136;
- go test and godoc updated

Signed-off-by: Ri Xu <xuri.me@gmail.com>
2017-10-18 18:42:20 +08:00
Ri Xu e820388d70
Handle coordinate parse exception, relate issue #122. 2017-09-19 11:59:33 +08:00
Ri Xu f05f799f8d
- API changed, use worksheet name instead of "sheet" + index, related issue #25, #43, #47, #51, #89, #101, #116 and #120.
- go test updated
2017-09-13 22:00:33 +08:00
Ri Xu 3e7192b6ab
Simple go test. 2017-09-11 15:53:25 +08:00
Ri Xu 565b23e0e9
go test added for pull request #114 2017-09-06 13:15:25 +08:00
Ri Xu 1ec2661dda
Bugfix: deep copy issue with function `CopySheet()`, relate PR #108. 2017-08-19 13:37:15 +08:00
Ri Xu 77af25295e
- Conditional format with formula support, relate issue #75;
- go test and readme update
2017-08-18 20:55:27 +08:00
Ri Xu 67636039f6
- Init conditional format support, relate issue #75;
- go test and godoc updated
2017-08-11 23:15:33 +08:00
Ri Xu a8cf38ebd5
- New function `GetCellHyperLink()` added, relate issue #98;
- go test added
2017-08-08 20:08:54 +08:00
Ri Xu 6626a26f7b
Simplify code and update unit tests. 2017-08-01 16:35:18 +08:00
Ri Xu 308776e350
Optimize code, go test and godoc updated. 2017-07-30 15:46:04 +08:00
Youngwan Kim 5a4870d1cf Add extra argument "Linktype" to SetCellHyperLink
it support "External" and "Location"

Signed-off-by: Youngwan Kim <y103.kim@gmail.com>
2017-07-30 15:46:58 +09:00
Ri Xu bbed2f6dc9
- Init create or remove panes support;
- go test updated
2017-07-30 12:40:59 +08:00
Ri Xu 4a74951e81
- Support set custom number format, relate issue #86;
- go test and godoc updated
2017-07-27 11:46:04 +08:00
Ri Xu 6aa59a1af2
- Init insert/remove column/row support. Relate issue #77 and #82;
- Readme and go test updated
2017-07-24 10:26:02 +08:00
Ri Xu 101abe8e98
Add currency format code and go test updated. 2017-07-15 16:03:12 +08:00
Ri Xu 60fa5a5be1
- Display negative numbers by applying a red color supported;
- go test updated
2017-07-15 14:31:07 +08:00
Ri Xu bc31e545c8
- Currency format supported, relate issue #80;
- go test and godoc updated
2017-07-14 21:15:44 +08:00
Ri Xu 20aae4e0e6 Repo URI changed. 2017-07-11 14:54:47 +08:00
Ri Xu 654a676d93
- New function `NewStyle()` added and function `SetCellStyle()` has been exported, relate issue #72;
- go test and go doc updated
2017-06-29 19:41:00 +08:00
Ri Xu 86466654e2
- Unify the index row number index of functions `SetRowHeight()` and `GetRowHeight()` relate issue #68;
- Unify the return value data type of functions  `SetColWidth()` and `GetColWidth()`;
- go test updated
2017-06-29 11:14:33 +08:00
Ri Xu 66e5d1fa80
API changed, use `NewFile()` instead of `CreateFile()` and use `SaveAs()` instead of `WriteTo()`. 2017-06-28 17:03:20 +08:00
Ri Xu 7bc43301da
- Support insert new lines into shape, relate issue #38, note that the format set parameter of function `AddShape()` changed;
- go test and go doc updated
2017-06-19 11:18:58 +08:00
Ri Xu 9928bbc7c8 - New functions `GetColVisible()` and `SetColVisible()` added, relate issue #61;
- go test updated;
- Fix typo
2017-06-15 11:03:29 +08:00
Ri Xu a9f671d98f - New functions: `GetSheetVisible()` and `GetRowVisible()` added, relate issue #61;
- go test updated
2017-06-14 15:01:49 +08:00
Ri Xu c89d842352 Init auto filter support, relate issue #59. 2017-06-08 11:11:11 +08:00
Ri Xu 70f6328150 Support set font style of shape text. Relate issue #38. 2017-05-16 20:42:01 +08:00
Ri Xu cf97118bfe - The max author and text in comment limit added;
- go doc and go test updated
2017-05-13 14:12:43 +08:00
Ri Xu d93a156355 Initialize comments support & go test updated. 2017-05-13 13:28:21 +08:00
Ri Xu 8fbab47444 - Formatted cell data support, fix issue #48;
- Function `SetCellValue()` support `time.Time` data type parameter, relate issue #49;
- go doc and go test updated
2017-05-05 14:40:28 +08:00
Ri Xu 7f30a6c943 - Initialize shape support: new function `AddShape()` added. Relate issue #38;
- Drawing `nvPicPr` element ID property calculation changed;
- go test updated
2017-04-30 20:03:43 +08:00
Ri Xu 46b8c46d91 - Initialize table support;
- go test updated
2017-04-28 15:49:41 +08:00
Ri Xu 2868bd3ec9 - New function `HideSheet()` and `UnhideSheet()` added;
- go test updated
2017-04-26 11:43:39 +08:00
Ri Xu 266d2c36e5 - Font bold, italic and underline style support. Relate issue #45;
- Function `GetRows()` doc updated, relate issue #43;
- go test and embed template updated
2017-04-25 18:43:10 +08:00
Ri Xu d78ac4108c - Update doc of function `AddChart()`;
- Readme updated;
- go test update
2017-04-23 00:39:14 +08:00
Ri Xu 219aadeb76 - Initialize char support, relate issue #31;
- Doc for function `GetRows()` updated, relate issue #43;
- Fix doc typo in `xmlContentTypes.go`;
- Default template updated;
- Readme updated;
- go test updated
2017-04-23 00:10:23 +08:00
Ri Xu 6e287839ec - Set number format for a cell support;
- go test updated
2017-04-07 17:32:14 +08:00
Ri Xu c7e277a07a - New function `CopySheet()` added, relate issue #33;
- Typo fixed;
- go test updated
2017-04-04 19:12:35 +08:00
Ri Xu b4ed9cc40f New function `GetSheetIndex()` added, relate issue #25;
Fix return index error in function `GetSheetMap()`;
Fix return worksheet name error in function `GetSheetName()`;
go test updated
2017-04-01 21:02:25 +08:00
Ri Xu 02b81b7efe - Get an images in a cell supported, new function `GetPicture` added;
- go test updated
2017-03-28 21:18:06 +08:00
Ri Xu bee487c445 Leading space(s) character in cell value detection added. Related issue #32. 2017-03-28 11:48:09 +08:00
Ri Xu b6254209fe - Set text in cell align support, note that the parameters of the `SetCellStyle` function have changed;
- go test updated
2017-03-26 15:27:04 +08:00
Ri Xu 0d3452fbe2 - Delete sheet from workbook support, related issue #30;
- go test updated
2017-03-22 18:51:18 +08:00
Ri Xu 68b4d1f546 - Set cell background color and style support;
- Rename function `SetBorder` to `SetCellStyle`;
- Complete `xlsxColor` structure definition;
- go test updated
2017-03-19 17:14:40 +08:00
Ri Xu 5384756d64 - Complete the element `sheetFormatPr` struct definition;
- Partial logic performance optimization, use pointer reference instead of a pass the variable value;
- Add comments for content types struct definition;
- Update go test `TestSetBorder` section
2017-03-10 23:10:15 +08:00
Ri Xu 1f73f08185 - New feature: border setting support (Related issue #21);
- Function parameter code is simplified;
- Fix element `Tint` value parsing error in worksheet;
- Update go test
2017-03-06 12:05:41 +08:00
Ri Xu 1e340aea40 Change function `AddPicture()` parameters to add add printing settings support. Related issue #27. 2017-02-28 12:59:04 +08:00
Ri Xu 0833a9d5da - Improved performance when reading large files, call Token to read tokens one by one instead Unmarshal. Related issue #20 ;
- Fix go test typo;
- Update README
2017-02-12 19:03:24 +08:00
Nikolas Silva 8ce12b60b8 Add SetRowHeight function 2017-02-02 00:59:31 -02:00
Ri Xu a1060e779e Make functions: `SetCellValue`, `SetCellInt`, `SetCellHyperLink`, `SetCellFormula`, `GetCellValue` and `GetCellFormula` to support the merged cells. 2017-01-25 18:13:11 +08:00
Ri Xu c0a3020886 Support create merge cell. 2017-01-25 15:44:18 +08:00
Ri Xu bd5b033b02 Support set work sheet background image. 2017-01-24 18:29:02 +08:00
Ri Xu 03234d6a25 Support add picture with offset and scaling. 2017-01-22 16:16:03 +08:00
Ri Xu 4a9b39afc6 - Add hyperlink and set formula support for cell support;
- Character limits for cells added;
- Update go test and fix typo
2017-01-19 14:05:32 +08:00
Ri Xu 52796f6e58 Format commants, break comments after 80 characters. 2017-01-18 16:05:01 +08:00
Ri Xu f05df2a018 - New function `SetSheetName` and `SetColWidth` added, support rename sheet and set column width;
- Add escape characters of sheet name;
- Update go test and fix typo
2017-01-18 14:47:23 +08:00
Ri Xu a99f0227b0 - New function `AddPicture()` added, support to add picture into excel cell;
- go test updated;
- fix typo and `gofmt -s` formatted
2017-01-17 19:06:42 +08:00
Sharsie 57fc2943ff Add tests for the default cell value 2017-01-11 20:43:31 +01:00
Ri Xu 9e8d36ce59 - Performance improvement, remove `replaceRelationshipsID` and `workBookCompatibility` functions;
- New functions `GetActiveSheetIndex`, `GetSheetName` and `GetSheetMap` added.
2016-12-31 23:47:30 +08:00
Ri Xu 30d0a2f40a - New function `GetCellFormula` added;
- Fix `GetCellValue` causes panic in some particular situation issues;
- Go test updated
2016-12-24 22:47:36 +08:00
Ri Xu b84bfa7eab - Update maximum 31 characters allowed in sheet title;
- Fix issue XML tag `headerFooter` and `sheetPr` element self-close errors cause file corruption;
- Fix issue `Section` and `Pane` element order make file corruption in some case;
- Change sheet `rId` calculation method in `/xl/workbook.xml`, fix makes file corruption in some case;
- Compatibility improved: add `xlsxTabColor` struct and some XML element for worksheet
2016-12-23 17:47:25 +08:00
Ri Xu 2a3620e750 BugFix: `SetCellValue` function assertion logic will cause panic in some case. 2016-11-24 11:42:51 +08:00
Ri Xu 78eb982052 Remove useless `.xlsx` tested files and go test updated. 2016-11-02 12:58:51 +08:00
Ri Xu 6185cd577d Update go test. 2016-10-23 16:46:46 +08:00
Ri Xu 1a2570b873 Update go test case and update readme. 2016-10-23 16:07:57 +08:00
Ri Xu e28de172c6 Update go test. 2016-10-19 18:42:29 +08:00
Ri Xu cbfd657753 New function SetCellValue added and update godoc example. 2016-09-09 19:39:41 +08:00
Ri Xu 0dd0fba96b Move execute checkRow logic when XLSX file open, speed up library write file. 2016-09-07 20:09:02 +08:00
Ri Xu df8f85d6ab Open file error return added and UpdateLinkedValue function added to fix linked values within a spreadsheet are not updating. 2016-09-06 21:20:24 +08:00
Ri Xu 50863294f9 Fix issue #2 change project to object-oriented style and update readme file. 2016-09-05 16:37:15 +08:00
Ri Xu db47b6750d Update readme and comments of the test file. 2016-09-02 19:41:14 +08:00
Ri Xu 0a0a36bafd Update testing file more case added and reading cell value usage example in readme added. 2016-09-02 10:28:29 +08:00
Ri Xu 0e61ae7eda 1) Update readme file credits and go report badge added; 2) Remove use less function; 3) Update test file. 2016-08-31 19:27:44 +08:00
Ri Xu 3c4ad28db7 - Get cell value support
- Optimisation code use fmt package
- Update README
- Remove useless function
2016-08-30 21:54:28 +08:00
Ri Xu 0d60020f96 Update test file. 2016-08-30 14:00:21 +08:00
Ri Xu a9d3ee2869 Init commit. 2016-08-30 11:51:31 +08:00