gridjs-spreadsheet 25.3.0 → 25.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/example/Dockerfile +10 -7
  2. package/example/pom.xml +2 -2
  3. package/example/src/main/java/com/aspose/gridjs/demo/GridjsdemoApplication.java +15 -14
  4. package/example/src/main/java/com/aspose/gridjs/demo/MyConfig.java +31 -0
  5. package/example/src/main/java/com/aspose/gridjs/demo/controller/GridJs2Controller.java +38 -401
  6. package/example/src/main/resources/application.properties +3 -7
  7. package/example/src/main/resources/static/xspread/content/img/20130527034914143.gif +0 -0
  8. package/example/src/main/resources/static/xspread/content/img/20130527034914229.gif +0 -0
  9. package/example/src/main/resources/static/xspread/content/img/20130527034916363.gif +0 -0
  10. package/example/src/main/resources/static/xspread/content/img/20130527034917946.gif +0 -0
  11. package/example/src/main/resources/static/xspread/content/img/20130527034918372.gif +0 -0
  12. package/example/src/main/resources/templates/fileFromUpload.html +18 -19
  13. package/example/src/main/resources/templates/index.html +2 -2
  14. package/package.json +1 -1
  15. package/preview.gif +0 -0
  16. package/readme.md +53 -4
  17. package/xspreadsheet.css +51 -3
  18. package/xspreadsheet.js +5 -5
  19. package/2922578eabb1a88d1974da56c65189ba.svg +0 -907
  20. package/9ab1b217edd126e8925e88cc8f25a154.svg +0 -88
  21. /package/{example/src/main/resources/static/xspread/555f60323063f2b68b6eac7ce9c45b19.svg → 555f60323063f2b68b6eac7ce9c45b19.svg} +0 -0
  22. /package/{example/src/main/resources/static/xspread/a3b683289420fd8ec937908397907279.svg → a3b683289420fd8ec937908397907279.svg} +0 -0
@@ -2,16 +2,12 @@ spring.application.name=gridjsdemo
2
2
  spring.servlet.multipart.enabled=true
3
3
  spring.servlet.multipart.max-file-size=10MB
4
4
  spring.servlet.multipart.max-request-size=10MB
5
- #for local test
6
5
  #testconfig.ListDir=D:\\codebase\\customerissue\\wb\\tempfromdownload\\
7
- #testconfig.FileName=excelColumnWordBreak.xlsm
8
- #testconfig.CachePath=F:\\storage\\gridjs_temp
9
- #testconfig.UploadPath=F:\\storage\\upload
10
- #testconfig.AsposeLicensePath=F:\\aspose.lic
11
- #for docker linux
6
+ #for linux
12
7
  testconfig.ListDir=/app/wb
13
- testconfig.FileName=controls.xlsx
8
+ testconfig.FileName=chart.xlsx
14
9
  testconfig.CachePath=/app/grid_cache
15
10
  testconfig.UploadPath=/app/upload
16
11
  testconfig.AsposeLicensePath=/app/license
12
+
17
13
 
@@ -5,24 +5,23 @@
5
5
  <meta name="viewport" content="width=device-width" />
6
6
  <title>gridjs-web-demo</title>
7
7
 
8
- <style>
9
- ::-webkit-scrollbar, ::-webkit-scrollbar-button {
10
- width: 8px;
11
- height: 8px;
12
- }
13
-
14
- ::-webkit-scrollbar-track {
15
- -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
16
- border-radius: 10px;
17
- background-color: #FFF;
18
- }
8
+ <style>
9
+ ::-webkit-scrollbar, ::-webkit-scrollbar-button {
10
+ width: 8px;
11
+ height: 8px;
12
+ }
19
13
 
20
- ::-webkit-scrollbar-thumb {
21
- border-radius: 10px;
22
- -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
23
- background-color: #AAA;
24
- }
14
+ ::-webkit-scrollbar-track {
15
+ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
16
+ border-radius: 10px;
17
+ background-color: #FFF;
18
+ }
25
19
 
20
+ ::-webkit-scrollbar-thumb {
21
+ border-radius: 10px;
22
+ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
23
+ background-color: #AAA;
24
+ }
26
25
  html, body {
27
26
  margin: 0;
28
27
  padding: 0;
@@ -43,8 +42,8 @@ html, body {
43
42
  height: 100%;
44
43
  object-fit: contain; /* 对于图像或视频很有用 */
45
44
  }
46
- </style>
47
- <!--<link rel="stylesheet" href="./quantumui.min.22.5.5.2.css?v=20220312" />-->
45
+ </style>
46
+ <!--<link rel="stylesheet" href="./quantumui.min.22.5.5.2.css?v=20220312" />-->
48
47
  <link rel="stylesheet" href="/xspread/bootstrap.min.22.5.5.2.css?v=20220315" />
49
48
  <script src="/xspread/jquery-2.1.1.js"></script>
50
49
  <link rel="stylesheet" href="/xspread/jquery-ui.min.css" />
@@ -165,7 +164,7 @@ html, body {
165
164
  const imageuploadurl1 = "/GridJs2/AddImage";
166
165
  const imageuploadurl2 = "/GridJs2/AddImageByURL";
167
166
  const imagecopyurl = "/GridJs2/CopyImage"; // x.spreadsheet.locale('zh-cn');
168
- const lazyLoadingUrl = "/GridJs2/LazyLoading";
167
+ const lazyLoadingUrl = "/GridJs2/LazyLoadingStreamJson";
169
168
  xs = x_spreadsheet('#gridjs-demo-uid', option).loadData(sheets).change((cdata) => {
170
169
  console.log(cdata);
171
170
  console.log(xs.validate());
@@ -52,7 +52,7 @@ html, body {
52
52
  <!-- <script src="vconsole.min.js"></script> -->
53
53
  <!--for local reference-->
54
54
  <!--
55
- <link rel="stylesheet" href="/xspread/xspreadsheet.css?v=20230525" />
55
+ <link rel="stylesheet" href="/xspread/xspreadsheet.css?v=20230525" />
56
56
  <script src="/xspread/xspreadsheet.js?v=20230525"></script>
57
57
  -->
58
58
 
@@ -165,7 +165,7 @@ html, body {
165
165
  const imageuploadurl1 = "/GridJs2/AddImage";
166
166
  const imageuploadurl2 = "/GridJs2/AddImageByURL";
167
167
  const imagecopyurl = "/GridJs2/CopyImage"; // x.spreadsheet.locale('zh-cn');
168
- const lazyLoadingUrl = "/GridJs2/LazyLoading";
168
+ const lazyLoadingUrl = "/GridJs2/LazyLoadingStreamJson";
169
169
  xs = x_spreadsheet('#gridjs-demo-uid', option).loadData(sheets).change((cdata) => {
170
170
  console.log(cdata);
171
171
  console.log(xs.validate());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gridjs-spreadsheet",
3
- "version": "25.3.0",
3
+ "version": "25.5.0",
4
4
  "description": "this is the client side script for GridJs which is a lightweight, scalable, and customizable toolkit that provides cross-platform web applications, enables convenient development for editing or viewing Excel/Spreadsheet files, offers simple deployment, and provides easy-to-use APIs based on JSON format.",
5
5
  "types": "index.d.ts",
6
6
  "main": "xspreadsheet.js",
package/preview.gif ADDED
Binary file
package/readme.md CHANGED
@@ -163,14 +163,42 @@ const s = new Spreadsheet("#gridjs-demo")
163
163
 
164
164
  ## Bind events
165
165
  ```javascript
166
- //single selection
166
+ // single selection
167
167
  xs.on('cell-selected', (cell, ri, ci) => {});
168
- //range selection
168
+ // range selection
169
169
  xs.on('cells-selected', (cell, { sri, sci, eri, eci }) => {});
170
- //shape/image selection
170
+ // shape/image selection
171
171
  xs.on('object-selected', (obj) => { console.log('obj id:', obj.id, ', type: ', obj.type); })
172
172
  // edited on cell
173
173
  xs.on('cell-edited', (text, ri, ci) => {});
174
+ // cells updated
175
+ xs.on('cells-updated', (name, cells) => {
176
+ console.log('cells updated for sheet name:', name);
177
+ cells.forEach((acell, index, array) => {
178
+ console.log('acell got updated:', acell);
179
+ })
180
+ })
181
+ // cells deleted
182
+ xs.on('cells-deleted', (range) => {
183
+ console.log('cells deleted :', range);
184
+ })
185
+ // rows deleted
186
+ xs.on('rows-deleted', (ri, n) => {
187
+ console.log('rows-deleted :', ri, ",size", n);
188
+ })
189
+ // columns deleted
190
+ xs.on('columns-deleted', (ci, n) => {
191
+ console.log('columns-deleted :', ci, ",size", n);
192
+ })
193
+ // rows inserted
194
+ xs.on('rows-inserted', (ri, n) => {
195
+ console.log('rows-inserted :', ri, ",size", n);
196
+ })
197
+ // columns inserted
198
+ xs.on('columns-inserted', (ci, n) => {
199
+ console.log('columns-inserted :', ci, ",size", n);
200
+ })
201
+
174
202
  ```
175
203
 
176
204
  ## update cell-text
@@ -196,6 +224,7 @@ xs.cellStyle(ri, ci);
196
224
  - Paint format
197
225
  - Clear format
198
226
  - Format
227
+ - Number Format
199
228
  - Font/Font size/ bold/italic/Underline/Strike
200
229
  - Highlight
201
230
  - Shape/Image resize/rotate/position ajustment
@@ -226,6 +255,7 @@ xs.cellStyle(ri, ci);
226
255
  - Insert/Delete form controls
227
256
  - Insert/Delete common shapes for autoshape
228
257
  - Support display two colors gradient in fill effects
258
+ - Mobile compatibility
229
259
 
230
260
 
231
261
  ## Github-Demos
@@ -283,12 +313,31 @@ v25.1:
283
313
 
284
314
  - support copy/paste from MS-Excel
285
315
 
316
+ v25.2:
317
+
318
+ - support copy/paste from MS-Excel
319
+ - enhancement for automatic operations for user’s convenience, such as extending blank row/column, page scrolling, …
320
+
321
+ v25.3:
322
+
323
+ - support more shotcut keys
324
+ - support pasting the content copied from excel to multiple target areas
325
+
326
+ v25.4:
327
+
328
+ - support show statistics information in the lower right corner when cells are selected
329
+
330
+ v25.5:
331
+
332
+ - add support for Polish menus.
333
+ - support APIs for insert/delete rows/columns
334
+
286
335
  ## License
287
336
 
288
337
  MIT
289
338
 
290
339
  ## Support
291
340
 
292
- You can ask any question or request features using the [Forum](https://forum.aspose.com/c/cells).
341
+ You can ask any question or request features or report bugs using the [Forum](https://forum.aspose.com/c/cells).
293
342
 
294
343
  [Product Page](https://products.aspose.com/cells) | [Product Documentation](https://docs.aspose.com/cells/net/aspose-cells-gridjs/) | [Blog](https://blog.aspose.com/category/cells/) |[API Reference](https://reference.aspose.com/cells/net/aspose.cells.gridjs/) | [Source Code Samples](https://github.com/aspose-cells/Aspose.Cells-for-.NET/tree/master/Examples_GridJs) | [Free Support](https://forum.aspose.com/c/cells)
package/xspreadsheet.css CHANGED
@@ -145,14 +145,14 @@ body {
145
145
  height: 60px;
146
146
  margin: 10px;
147
147
  background-repeat: no-repeat;
148
- background-image: url(9ab1b217edd126e8925e88cc8f25a154.svg);
148
+ background-image: url(555f60323063f2b68b6eac7ce9c45b19.svg);
149
149
  }
150
150
  .x-spreadsheet-banner-icon-s {
151
151
  width: 30px;
152
152
  height: 30px;
153
153
  margin: 5px;
154
154
  background-repeat: no-repeat;
155
- background-image: url(9ab1b217edd126e8925e88cc8f25a154.svg);
155
+ background-image: url(555f60323063f2b68b6eac7ce9c45b19.svg);
156
156
  }
157
157
  .x-spreadsheet-banner-filename {
158
158
  width: max-content;
@@ -656,6 +656,8 @@ body {
656
656
  .x-spreadsheet-bottombar {
657
657
  position: relative;
658
658
  border-top: 1px solid #e0e2e4;
659
+ display: flex;
660
+ justify-content: space-between;
659
661
  }
660
662
  .x-spreadsheet-bottombar .x-spreadsheet-menu > li {
661
663
  line-height: 40px;
@@ -665,6 +667,24 @@ body {
665
667
  vertical-align: middle;
666
668
  border-right: 1px solid #e8eaed;
667
669
  }
670
+ .x-spreadsheet-bottombar .x-spreadsheet-stats {
671
+ border-left: 1px solid #e0e2e4;
672
+ padding: 0 10px;
673
+ height: 40px;
674
+ display: flex;
675
+ align-items: center;
676
+ color: #666;
677
+ font-size: 12px;
678
+ overflow: hidden;
679
+ }
680
+ .x-spreadsheet-bottombar .x-spreadsheet-stat-item {
681
+ margin-right: 12px;
682
+ white-space: nowrap;
683
+ }
684
+ .x-spreadsheet-bottombar [class^="x-spreadsheet-stat-value-"] {
685
+ font-weight: bold;
686
+ color: #333;
687
+ }
668
688
  .x-spreadsheet-menu {
669
689
  list-style: none;
670
690
  margin: 0;
@@ -1274,7 +1294,7 @@ form fieldset select {
1274
1294
  display: inline-block;
1275
1295
  }
1276
1296
  .x-spreadsheet-icon .x-spreadsheet-icon-img {
1277
- background-image: url(2922578eabb1a88d1974da56c65189ba.svg);
1297
+ background-image: url(a3b683289420fd8ec937908397907279.svg);
1278
1298
  position: absolute;
1279
1299
  width: 262px;
1280
1300
  height: 444px;
@@ -1835,6 +1855,34 @@ input[type=number]::-webkit-outer-spin-button {
1835
1855
  border-top: none;
1836
1856
  flex: 1;
1837
1857
  }
1858
+ .x-spreadsheet-selector-dropdown-button {
1859
+ position: absolute;
1860
+ width: 24px;
1861
+ height: 18px;
1862
+ background-color: rgba(224, 224, 224, 0.32);
1863
+ border: 1px solid #ccc;
1864
+ border-radius: 3px;
1865
+ display: flex;
1866
+ justify-content: center;
1867
+ align-items: center;
1868
+ cursor: pointer;
1869
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
1870
+ transition: background-color 0.2s;
1871
+ z-index: 1000;
1872
+ }
1873
+ .x-spreadsheet-hover-highlight {
1874
+ background-color: rgba(75, 137, 255, 0.1);
1875
+ position: absolute;
1876
+ }
1877
+ .x-spreadsheet-selector-dropdown-button:hover {
1878
+ background-color: #d5d5d5;
1879
+ }
1880
+ .x-spreadsheet-selector-dropdown-button::after {
1881
+ content: '';
1882
+ border-left: 4px solid transparent;
1883
+ border-right: 4px solid transparent;
1884
+ border-top: 6px solid #777;
1885
+ }
1838
1886
  .x-spreadsheet-bar-label {
1839
1887
  flex: 0 0 auto;
1840
1888
  display: inline-block;