cloud-web-corejs 1.0.54-dev.551 → 1.0.54-dev.552

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.54-dev.551",
4
+ "version": "1.0.54-dev.552",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -0,0 +1,257 @@
1
+ # Luckysheet Excel 导出功能改进说明
2
+
3
+ ## 主要改进内容
4
+
5
+ ### 1. 列宽处理优化
6
+ - ✅ **自动列宽设置**: 根据原始数据的列宽配置自动设置Excel列宽
7
+ - ✅ **默认列宽**: 当无配置时提供合理的默认列宽(15个字符宽度)
8
+ - ✅ **宽度范围限制**: 列宽限制在8-100个字符范围内,避免过窄或过宽
9
+
10
+ ### 2. 样式处理增强
11
+ - ✅ **字体映射优化**: 改进了中文字体到Excel字体的映射
12
+ - 微软雅黑 → Microsoft YaHei
13
+ - 宋体 → SimSun
14
+ - 黑体 → SimHei
15
+ - 楷体 → KaiTi
16
+ - 仿宋 → FangSong
17
+ - ✅ **颜色处理**: 支持RGBA颜色格式,正确处理透明度
18
+ - ✅ **字体大小限制**: 限制在8-72pt范围内
19
+ - ✅ **数字格式支持**: 添加了完整的数字格式转换支持
20
+
21
+ ### 3. 工作表属性完善
22
+ - ✅ **工作簿元数据**: 添加创建者、修改时间等信息
23
+ - ✅ **工作表属性**: 设置默认行高、标签颜色等
24
+ - ✅ **页面设置**: 配置A4纸张、纵向布局等打印属性
25
+ - ✅ **MIME类型优化**: 使用标准的Excel MIME类型
26
+
27
+ ### 4. 性能和稳定性提升
28
+ - ✅ **错误处理**: 添加了完善的错误处理机制
29
+ - ✅ **内存管理**: 正确释放URL对象避免内存泄漏
30
+ - ✅ **异步处理**: 使用Promise处理异步操作
31
+
32
+ ## API 接口说明
33
+
34
+ ### 主要导出函数
35
+
36
+ #### 1. `exportExcel(luckysheet, fileName)`
37
+ 直接导出Excel文件并触发下载
38
+
39
+ ```javascript
40
+ import { exportExcel } from './export'
41
+
42
+ // 基础使用
43
+ exportExcel(luckysheetData, '我的表格')
44
+ ```
45
+
46
+ #### 2. `generateExcelBlob(luckysheet, fileName)`
47
+ 生成Blob对象,可用于自定义下载或其他处理
48
+
49
+ ```javascript
50
+ import { generateExcelBlob } from './export'
51
+
52
+ const blob = await generateExcelBlob(luckysheetData, '我的表格')
53
+ // 可以对blob进行进一步处理
54
+ ```
55
+
56
+ #### 3. `generateExcelFile(luckysheet, fileName)`
57
+ 生成File对象
58
+
59
+ ```javascript
60
+ import { generateExcelFile } from './export'
61
+
62
+ const file = await generateExcelFile(luckysheetData, '我的表格')
63
+ ```
64
+
65
+ ## 数据结构要求
66
+
67
+ ### 单个工作表数据结构
68
+
69
+ ```javascript
70
+ const sheetData = {
71
+ name: '工作表名称',
72
+ data: [
73
+ // 第一行(标题行)
74
+ [
75
+ { v: '列1标题', ff: 1, fc: '#000000', bl: 1, fs: 12 },
76
+ { v: '列2标题', ff: 1, fc: '#000000', bl: 1, fs: 12 }
77
+ ],
78
+ // 数据行
79
+ [
80
+ { v: '数据1', ff: 0, fc: '#333333', fs: 10 },
81
+ { v: '数据2', ff: 0, fc: '#333333', fs: 10 }
82
+ ]
83
+ ],
84
+ config: {
85
+ merge: {}, // 合并单元格配置
86
+ borderInfo: [], // 边框信息
87
+ columnlen: { // 列宽配置
88
+ 0: 100, // 第1列宽度100px
89
+ 1: 80 // 第2列宽度80px
90
+ },
91
+ rowlen: { // 行高配置
92
+ 0: 25, // 第1行高度25px
93
+ 1: 20 // 第2行高度20px
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
99
+ ### 多个工作表数据结构
100
+
101
+ ```javascript
102
+ const multipleSheets = [
103
+ {
104
+ name: 'Sheet1',
105
+ data: [...],
106
+ config: {...}
107
+ },
108
+ {
109
+ name: 'Sheet2',
110
+ data: [...],
111
+ config: {...}
112
+ }
113
+ ]
114
+ ```
115
+
116
+ ## 单元格属性说明
117
+
118
+ | 属性 | 类型 | 说明 | 示例 |
119
+ |------|------|------|------|
120
+ | v | any | 单元格值 | `'文本'`, `123`, `true` |
121
+ | ff | number/string | 字体 | `0`(微软雅黑), `'Arial'` |
122
+ | fc | string | 字体颜色 | `'#FF0000'`, `'#FF000080'`(带透明度) |
123
+ | fs | number | 字体大小 | `12` |
124
+ | bl | number | 粗体 | `0`(正常), `1`(粗体) |
125
+ | it | number | 斜体 | `0`(正常), `1`(斜体) |
126
+ | ul | number | 下划线 | `0`(无), `1`(下划线) |
127
+ | cl | number | 删除线 | `0`(无), `1`(删除线) |
128
+ | bg | string | 背景色 | `'#FFFF00'` |
129
+ | vt | number | 垂直对齐 | `0`(居中), `1`(顶部), `2`(底部) |
130
+ | ht | number | 水平对齐 | `0`(居中), `1`(左对齐), `2`(右对齐) |
131
+ | tb | number | 文本换行 | `0`(不换行), `2`(换行) |
132
+ | tr | number | 文字旋转 | `0`(正常), `1`(45度), `2`(-45度) |
133
+ | f | string | 公式 | `'SUM(A1:A10)'` |
134
+ | ct | object | 内容类型 | `{fa: '0.00', s: [...]}` |
135
+
136
+ ## 使用示例
137
+
138
+ ### 1. 基础导出
139
+
140
+ ```javascript
141
+ import { exportExcel } from './export'
142
+
143
+ // 导出单个工作表
144
+ exportExcel(singleSheetData, '员工信息表')
145
+
146
+ // 导出多个工作表
147
+ exportExcel(multipleSheetsData, '综合报表')
148
+ ```
149
+
150
+ ### 2. 带进度的自定义导出
151
+
152
+ ```javascript
153
+ import { customExportExample } from './exportExample'
154
+
155
+ customExportExample(
156
+ sheetData,
157
+ '我的报表',
158
+ (progress, message) => {
159
+ console.log(`导出进度: ${progress}% - ${message}`)
160
+ // 更新UI进度条
161
+ updateProgressBar(progress)
162
+ }
163
+ )
164
+ ```
165
+
166
+ ### 3. 获取Blob进行自定义处理
167
+
168
+ ```javascript
169
+ import { generateExcelBlob } from './export'
170
+
171
+ const blob = await generateExcelBlob(sheetData, '报表')
172
+ // 上传到服务器
173
+ await uploadToServer(blob)
174
+ ```
175
+
176
+ ## 常见问题解决
177
+
178
+ ### 1. 列宽显示不正确
179
+
180
+ 确保在config中正确设置columnlen:
181
+
182
+ ```javascript
183
+ config: {
184
+ columnlen: {
185
+ 0: 120, // A列宽度120px
186
+ 1: 80, // B列宽度80px
187
+ 2: 150 // C列宽度150px
188
+ }
189
+ }
190
+ ```
191
+
192
+ ### 2. 中文字体显示异常
193
+
194
+ 使用标准的字体编号或名称:
195
+
196
+ ```javascript
197
+ // 推荐使用编号
198
+ { ff: 0, v: '微软雅黑文本' } // 最佳兼容性
199
+
200
+ // 或使用标准字体名称
201
+ { ff: 'Microsoft YaHei', v: '中文文本' }
202
+ ```
203
+
204
+ ### 3. 颜色显示不正确
205
+
206
+ 确保颜色格式正确:
207
+
208
+ ```javascript
209
+ // RGB格式
210
+ { fc: '#FF0000', bg: '#FFFF00' }
211
+
212
+ // RGBA格式(带透明度)
213
+ { fc: '#FF000080', bg: '#FFFF00CC' }
214
+ ```
215
+
216
+ ### 4. 数字格式不生效
217
+
218
+ 在ct属性中指定数字格式:
219
+
220
+ ```javascript
221
+ {
222
+ v: 1234.56,
223
+ ct: {
224
+ fa: '#,##0.00', // 千分位格式
225
+ t: 'n'
226
+ }
227
+ }
228
+ ```
229
+
230
+ ## 性能优化建议
231
+
232
+ 1. **大数据量处理**: 对于超过10000行的数据,建议分批导出
233
+ 2. **复杂样式**: 避免过度复杂的样式设置,影响导出性能
234
+ 3. **内存管理**: 及时清理不需要的Blob URL对象
235
+ 4. **并发控制**: 避免同时进行多个大型导出操作
236
+
237
+ ## 浏览器兼容性
238
+
239
+ - ✅ Chrome 60+
240
+ - ✅ Firefox 55+
241
+ - ✅ Safari 12+
242
+ - ✅ Edge 79+
243
+
244
+ ## 更新日志
245
+
246
+ ### v2.0.0 (当前版本)
247
+
248
+ - 🎉 重构导出核心逻辑
249
+ - 🎉 添加列宽自动设置功能
250
+ - 🎉 完善样式处理和字体映射
251
+ - 🎉 增强错误处理和性能优化
252
+ - 🎉 添加详细的使用文档和示例
253
+
254
+ ### v1.0.0 (原版本)
255
+
256
+ - 基础的Excel导出功能
257
+ - 支持基本样式和合并单元格