gridjs-spreadsheet 25.3.0 → 25.4.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.
@@ -1,30 +1,53 @@
1
- FROM maven:3.8.6-amazoncorretto-17 AS build
2
- # 设置工作目录
1
+
2
+
3
+ # FROM mcr.microsoft.com/java/openjdk:11 AS build
4
+ FROM eclipse/ubuntu_jdk8
5
+
6
+ # ���ù���Ŀ¼
3
7
  WORKDIR /usr/src/app
4
8
 
5
- # 将本地的 Maven 设置文件和环境变量设置文件复制到容器中
9
+
10
+
11
+
12
+ # �����ص� Maven �����ļ��ͻ������������ļ����Ƶ�������
13
+ COPY mvnw .
6
14
  COPY .mvn .mvn
7
15
  COPY pom.xml .
8
16
  COPY src src
9
-
17
+
18
+ # ʹ�� Maven ����Ӧ�ã�������ʹ�õ��� Maven��
19
+ RUN ./mvnw package -DskipTests
20
+
21
+
22
+
23
+
24
+
25
+ # Set the user
26
+ USER root
27
+
10
28
  RUN ls -l *
11
- # 使用 Maven 构建应用
12
- RUN mvn package -DskipTests
13
29
 
14
- FROM eclipse/ubuntu_jdk8
15
- WORKDIR /app
16
- # 将构建的 jar 文件复制到新的容器中
17
- COPY --from=build /usr/src/app/target/*.jar /app/app.jar
30
+ # �������� jar �ļ����Ƶ��µ�������
31
+ COPY target/*.jar /app/app.jar
32
+
33
+ # ɾ��������Ҫ��Դ��� Maven ���棬���پ������
34
+ RUN rm -rf target && rm -rf .mvn && rm -rf src
35
+
36
+
37
+
38
+
39
+
40
+
18
41
 
19
42
 
20
43
  # web port
21
44
  EXPOSE 8080
22
- # Install Fonts because the SDK image contains very few fonts. The command copies font files from local to docker image. Make sure you have a local fonts directory that contains all the fonts you need to install. In this example, the local fonts directory is put in the same directory as the Dockerfile.
45
+ # Install Fonts because the SDK image contains very few fonts. The command copies font files from local to docker image. Make sure you have a local ��fonts�� directory that contains all the fonts you need to install. In this example, the local ��fonts�� directory is put in the same directory as the Dockerfile.
23
46
  # COPY fonts/* /usr/share/fonts/
24
47
  RUN mkdir -p /app/wb
25
48
  RUN mkdir -p /app/grid_cache/streamcache
26
49
  RUN mkdir -p /app/upload
27
50
  COPY wb/*.xlsx /app/wb/
28
51
  # RUN ls -l /app/
29
- # 启动应用
52
+ # ����Ӧ��
30
53
  ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/app.jar"]
package/example/README.md CHANGED
@@ -1,12 +1,6 @@
1
- [Product Page](https://products.aspose.com/cells/java) | [Docs](https://docs.aspose.com/cells/java/aspose-cells-gridjs/) | [API Reference](https://reference.aspose.com/cells/java/com.aspose.gridjs/) | [Demos](https://products.aspose.app/cells/family/) | [Blog](https://blog.aspose.com/category/cells/) | [Code Samples](https://github.com/aspose-cells/Aspose.Cells-for-Java/tree/master/Examples.GridJs) | [Free Support](https://forum.aspose.com/c/cells) | [Temporary License](https://purchase.aspose.com/temporary-license) | [EULA](https://company.aspose.com/legal/eula)
2
-
3
- Try our [free online apps](https://products.aspose.app/cells/family) demonstrating some of the most popular Aspose.Cells functionality.
4
-
1
+ # Aspose.Cells for Java
5
2
  [Aspose.Cells.GridJs for Java](http://www.aspose.com/products/cells/java) 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.
6
3
 
7
- This is a demo to show how we can use GridJs to implment a spreadsheet Editor .
8
-
9
-
10
4
  ## Preview
11
5
 
12
6
  <img alt='demo' src='https://unpkg.com/gridjs-spreadsheet@25.1.0/preview.gif' />
@@ -35,32 +29,12 @@ open browser and navigate to view all the files in the directory at http://local
35
29
  1. docker build -t gridjs-demo-java .
36
30
 
37
31
  2. run with aspose license file:
38
-
39
- ```bash
40
32
  docker run -d -p 8080:8080 -v C:/path/to/license.txt:/app/license gridjs-demo-java
41
- ```
42
-
43
33
  or just run the demo in trial mode:
44
-
45
- ```bash
46
34
  docker run -d -p 8080:8080 gridjs-demo-java
47
- ```
48
35
 
49
36
  3. open browser and enter the url: http://localhost:8080/gridjsdemo/list
50
37
 
51
- ## Reference js lib used in the demo project:
52
- jquery.js v2.1.1
53
-
54
- jquery-ui.js v1.12.1
55
-
56
- jquery-ui.css v1.12.1
57
-
58
- jszip.min.js v3.6.0
59
-
60
- bootstrap.css v22.5.5.2
61
-
62
- quantumui.css v22.5.5.2
63
-
64
38
  ## Resources
65
39
 
66
40
  + **Website:** [www.aspose.com](http://www.aspose.com)
package/example/pom.xml CHANGED
@@ -51,12 +51,12 @@
51
51
  <dependency>
52
52
  <groupId>com.aspose</groupId>
53
53
  <artifactId>aspose-cells</artifactId>
54
- <version>25.3</version>
54
+ <version>25.2</version>
55
55
  </dependency>
56
56
  <dependency>
57
57
  <groupId>com.aspose</groupId>
58
58
  <artifactId>aspose-cells</artifactId>
59
- <version>25.3</version>
59
+ <version>25.2</version>
60
60
  <classifier>gridjs</classifier>
61
61
  </dependency>
62
62
  <!-- <dependency>
@@ -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" />
@@ -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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gridjs-spreadsheet",
3
- "version": "25.3.0",
3
+ "version": "25.4.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,26 @@ 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
+
286
330
  ## License
287
331
 
288
332
  MIT
289
333
 
290
334
  ## Support
291
335
 
292
- You can ask any question or request features using the [Forum](https://forum.aspose.com/c/cells).
336
+ You can ask any question or request features or report bugs using the [Forum](https://forum.aspose.com/c/cells).
293
337
 
294
338
  [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
@@ -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;
@@ -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;