• xlsxStyle + xlsx.full.min 导出数据,并设置导出样式


    1. html>
    2. <html>
    3. <head>
    4. <title>SheetJS JS-XLSXtitle>
    5. <meta charset="utf-8" />
    6. head>
    7. <body>
    8. <script type="text/javascript" src="./xlsx.full.min.js">script>
    9. <script type="text/javascript" src="./xlsxStyle.core.min.js">script>
    10. <script type="text/javascript" src="./xlsxStyle.utils.js">script>
    11. <script>
    12. function saveAs(obj, fileName) {
    13. var tmpA = document.createElement("a");
    14. tmpA.download = fileName || "下载";
    15. tmpA.href = URL.createObjectURL(obj);
    16. tmpA.click();
    17. setTimeout(function () {
    18. URL.revokeObjectURL(obj);
    19. }, 50);
    20. };
    21. const serveHead = [
    22. {
    23. 'startTime': '报警开始时间'
    24. },
    25. {
    26. 'endTime': '报警结束时间'
    27. },
    28. {
    29. 'eventLevel': '报警等级'
    30. },
    31. {
    32. 'mmsi': 'MMSI'
    33. },
    34. {
    35. 'name': '船名'
    36. },
    37. {
    38. 'alarmTime': '报警时间'
    39. },
    40. {
    41. 'nearestCable': '海域'
    42. },
    43. {
    44. 'sog': '船速(节)'
    45. },
    46. {
    47. 'minDistance': '距离(米)'
    48. },
    49. {
    50. 'alarmDescription': '描述'
    51. }
    52. ];
    53. const serveData = [
    54. {
    55. "mmsi": 413770025,
    56. "name": "WANXUANCHENGHUO0859",
    57. "startTime": "2022-11-05 11:54:15",
    58. "endTime": "2022-11-05 12:00:15",
    59. "eventLevel": "预警",
    60. "details": [
    61. {
    62. "startTime": "2022-11-05 11:54:15",
    63. "endTime": "2022-11-05 12:00:15",
    64. "eventLevel": "预警",
    65. "eventType": null,
    66. "mmsi": 413770025,
    67. "name": "WANXUANCHENGHUO0859",
    68. "nearestCable": null,
    69. "alarmDescription": null,
    70. "sog": null,
    71. "cog": null,
    72. "minDistance": null,
    73. "lon": null,
    74. "lat": null,
    75. "alarmTime": "2022-11-05 11:54:15",
    76. "beginTime": null,
    77. "finishTime": null,
    78. "reportTime": null,
    79. "groupByStr": "413770025_2022-11-05 11:54:15_2022-11-05 12:00:15_预警_WANXUANCHENGHUO0859"
    80. },
    81. {
    82. "startTime": "2022-11-05 11:54:15",
    83. "endTime": "2022-11-05 12:00:15",
    84. "eventLevel": "预警",
    85. "eventType": null,
    86. "mmsi": 413770025,
    87. "name": "WANXUANCHENGHUO0859",
    88. "nearestCable": null,
    89. "alarmDescription": null,
    90. "sog": null,
    91. "cog": null,
    92. "minDistance": null,
    93. "lon": null,
    94. "lat": null,
    95. "alarmTime": "2022-11-05 12:00:15",
    96. "beginTime": null,
    97. "finishTime": null,
    98. "reportTime": null,
    99. "groupByStr": "413770025_2022-11-05 11:54:15_2022-11-05 12:00:15_预警_WANXUANCHENGHUO0859"
    100. }
    101. ]
    102. },
    103. {
    104. "mmsi": 413989743,
    105. "name": "LUZAOZHUANGHUO2216",
    106. "startTime": "2022-11-05 09:32:41",
    107. "endTime": "2022-11-05 09:41:41",
    108. "eventLevel": "预警",
    109. "details": [
    110. {
    111. "startTime": "2022-11-05 09:32:41",
    112. "endTime": "2022-11-05 09:41:41",
    113. "eventLevel": "预警",
    114. "eventType": null,
    115. "mmsi": 413989743,
    116. "name": "LUZAOZHUANGHUO2216",
    117. "nearestCable": null,
    118. "alarmDescription": null,
    119. "sog": null,
    120. "cog": null,
    121. "minDistance": null,
    122. "lon": null,
    123. "lat": null,
    124. "alarmTime": "2022-11-05 09:38:41",
    125. "beginTime": null,
    126. "finishTime": null,
    127. "reportTime": null,
    128. "groupByStr": "413989743_2022-11-05 09:32:41_2022-11-05 09:41:41_预警_LUZAOZHUANGHUO2216"
    129. },
    130. {
    131. "startTime": "2022-11-05 09:32:41",
    132. "endTime": "2022-11-05 09:41:41",
    133. "eventLevel": "预警",
    134. "eventType": null,
    135. "mmsi": 413989743,
    136. "name": "LUZAOZHUANGHUO2216",
    137. "nearestCable": null,
    138. "alarmDescription": null,
    139. "sog": null,
    140. "cog": null,
    141. "minDistance": null,
    142. "lon": null,
    143. "lat": null,
    144. "alarmTime": "2022-11-05 09:41:41",
    145. "beginTime": null,
    146. "finishTime": null,
    147. "reportTime": null,
    148. "groupByStr": "413989743_2022-11-05 09:32:41_2022-11-05 09:41:41_预警_LUZAOZHUANGHUO2216"
    149. },
    150. {
    151. "startTime": "2022-11-05 09:32:41",
    152. "endTime": "2022-11-05 09:41:41",
    153. "eventLevel": "预警",
    154. "eventType": null,
    155. "mmsi": 413989743,
    156. "name": "LUZAOZHUANGHUO2216",
    157. "nearestCable": null,
    158. "alarmDescription": null,
    159. "sog": null,
    160. "cog": null,
    161. "minDistance": null,
    162. "lon": null,
    163. "lat": null,
    164. "alarmTime": "2022-11-05 09:35:41",
    165. "beginTime": null,
    166. "finishTime": null,
    167. "reportTime": null,
    168. "groupByStr": "413989743_2022-11-05 09:32:41_2022-11-05 09:41:41_预警_LUZAOZHUANGHUO2216"
    169. },
    170. {
    171. "startTime": "2022-11-05 09:32:41",
    172. "endTime": "2022-11-05 09:41:41",
    173. "eventLevel": "预警",
    174. "eventType": null,
    175. "mmsi": 413989743,
    176. "name": "LUZAOZHUANGHUO2216",
    177. "nearestCable": null,
    178. "alarmDescription": null,
    179. "sog": null,
    180. "cog": null,
    181. "minDistance": null,
    182. "lon": null,
    183. "lat": null,
    184. "alarmTime": "2022-11-05 09:32:41",
    185. "beginTime": null,
    186. "finishTime": null,
    187. "reportTime": null,
    188. "groupByStr": "413989743_2022-11-05 09:32:41_2022-11-05 09:41:41_预警_LUZAOZHUANGHUO2216"
    189. }
    190. ]
    191. },
    192. {
    193. "mmsi": 413865686,
    194. "name": "未知",
    195. "startTime": "2022-11-05 11:09:46",
    196. "endTime": "2022-11-05 11:09:46",
    197. "eventLevel": "预警",
    198. "details": [
    199. {
    200. "startTime": "2022-11-05 11:09:46",
    201. "endTime": "2022-11-05 11:09:46",
    202. "eventLevel": "预警",
    203. "eventType": null,
    204. "mmsi": 413865686,
    205. "name": "未知",
    206. "nearestCable": null,
    207. "alarmDescription": null,
    208. "sog": null,
    209. "cog": null,
    210. "minDistance": null,
    211. "lon": null,
    212. "lat": null,
    213. "alarmTime": "2022-11-05 11:09:46",
    214. "beginTime": null,
    215. "finishTime": null,
    216. "reportTime": null,
    217. "groupByStr": "413865686_2022-11-05 11:09:46_2022-11-05 11:09:46_预警_未知"
    218. },
    219. {
    220. "startTime": "2022-11-05 11:09:46",
    221. "endTime": "2022-11-05 11:09:46",
    222. "eventLevel": "预警",
    223. "eventType": null,
    224. "mmsi": 413865686,
    225. "name": "未知",
    226. "nearestCable": null,
    227. "alarmDescription": null,
    228. "sog": null,
    229. "cog": null,
    230. "minDistance": null,
    231. "lon": null,
    232. "lat": null,
    233. "alarmTime": "2022-11-05 11:09:46",
    234. "beginTime": null,
    235. "finishTime": null,
    236. "reportTime": null,
    237. "groupByStr": "413865686_2022-11-05 11:09:46_2022-11-05 11:09:46_预警_未知"
    238. }
    239. ]
    240. },
    241. {
    242. "mmsi": 413996871,
    243. "name": "未知",
    244. "startTime": "2022-11-05 09:21:16",
    245. "endTime": "2022-11-05 09:28:55",
    246. "eventLevel": "预警",
    247. "details": [
    248. {
    249. "startTime": "2022-11-05 09:21:16",
    250. "endTime": "2022-11-05 09:28:55",
    251. "eventLevel": "预警",
    252. "eventType": null,
    253. "mmsi": 413996871,
    254. "name": "未知",
    255. "nearestCable": null,
    256. "alarmDescription": null,
    257. "sog": null,
    258. "cog": null,
    259. "minDistance": null,
    260. "lon": null,
    261. "lat": null,
    262. "alarmTime": "2022-11-05 09:24:05",
    263. "beginTime": null,
    264. "finishTime": null,
    265. "reportTime": null,
    266. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    267. },
    268. {
    269. "startTime": "2022-11-05 09:21:16",
    270. "endTime": "2022-11-05 09:28:55",
    271. "eventLevel": "预警",
    272. "eventType": null,
    273. "mmsi": 413996871,
    274. "name": "未知",
    275. "nearestCable": null,
    276. "alarmDescription": null,
    277. "sog": null,
    278. "cog": null,
    279. "minDistance": null,
    280. "lon": null,
    281. "lat": null,
    282. "alarmTime": "2022-11-05 09:28:55",
    283. "beginTime": null,
    284. "finishTime": null,
    285. "reportTime": null,
    286. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    287. },
    288. {
    289. "startTime": "2022-11-05 09:21:16",
    290. "endTime": "2022-11-05 09:28:55",
    291. "eventLevel": "预警",
    292. "eventType": null,
    293. "mmsi": 413996871,
    294. "name": "未知",
    295. "nearestCable": null,
    296. "alarmDescription": null,
    297. "sog": null,
    298. "cog": null,
    299. "minDistance": null,
    300. "lon": null,
    301. "lat": null,
    302. "alarmTime": "2022-11-05 09:27:19",
    303. "beginTime": null,
    304. "finishTime": null,
    305. "reportTime": null,
    306. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    307. },
    308. {
    309. "startTime": "2022-11-05 09:21:16",
    310. "endTime": "2022-11-05 09:28:55",
    311. "eventLevel": "预警",
    312. "eventType": null,
    313. "mmsi": 413996871,
    314. "name": "未知",
    315. "nearestCable": null,
    316. "alarmDescription": null,
    317. "sog": null,
    318. "cog": null,
    319. "minDistance": null,
    320. "lon": null,
    321. "lat": null,
    322. "alarmTime": "2022-11-05 09:25:17",
    323. "beginTime": null,
    324. "finishTime": null,
    325. "reportTime": null,
    326. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    327. },
    328. {
    329. "startTime": "2022-11-05 09:21:16",
    330. "endTime": "2022-11-05 09:28:55",
    331. "eventLevel": "预警",
    332. "eventType": null,
    333. "mmsi": 413996871,
    334. "name": "未知",
    335. "nearestCable": null,
    336. "alarmDescription": null,
    337. "sog": null,
    338. "cog": null,
    339. "minDistance": null,
    340. "lon": null,
    341. "lat": null,
    342. "alarmTime": "2022-11-05 09:26:17",
    343. "beginTime": null,
    344. "finishTime": null,
    345. "reportTime": null,
    346. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    347. },
    348. {
    349. "startTime": "2022-11-05 09:21:16",
    350. "endTime": "2022-11-05 09:28:55",
    351. "eventLevel": "预警",
    352. "eventType": null,
    353. "mmsi": 413996871,
    354. "name": "未知",
    355. "nearestCable": null,
    356. "alarmDescription": null,
    357. "sog": null,
    358. "cog": null,
    359. "minDistance": null,
    360. "lon": null,
    361. "lat": null,
    362. "alarmTime": "2022-11-05 09:26:47",
    363. "beginTime": null,
    364. "finishTime": null,
    365. "reportTime": null,
    366. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    367. },
    368. {
    369. "startTime": "2022-11-05 09:21:16",
    370. "endTime": "2022-11-05 09:28:55",
    371. "eventLevel": "预警",
    372. "eventType": null,
    373. "mmsi": 413996871,
    374. "name": "未知",
    375. "nearestCable": null,
    376. "alarmDescription": null,
    377. "sog": null,
    378. "cog": null,
    379. "minDistance": null,
    380. "lon": null,
    381. "lat": null,
    382. "alarmTime": "2022-11-05 09:24:45",
    383. "beginTime": null,
    384. "finishTime": null,
    385. "reportTime": null,
    386. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    387. },
    388. {
    389. "startTime": "2022-11-05 09:21:16",
    390. "endTime": "2022-11-05 09:28:55",
    391. "eventLevel": "预警",
    392. "eventType": null,
    393. "mmsi": 413996871,
    394. "name": "未知",
    395. "nearestCable": null,
    396. "alarmDescription": null,
    397. "sog": null,
    398. "cog": null,
    399. "minDistance": null,
    400. "lon": null,
    401. "lat": null,
    402. "alarmTime": "2022-11-05 09:21:16",
    403. "beginTime": null,
    404. "finishTime": null,
    405. "reportTime": null,
    406. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    407. },
    408. {
    409. "startTime": "2022-11-05 09:21:16",
    410. "endTime": "2022-11-05 09:28:55",
    411. "eventLevel": "预警",
    412. "eventType": null,
    413. "mmsi": 413996871,
    414. "name": "未知",
    415. "nearestCable": null,
    416. "alarmDescription": null,
    417. "sog": null,
    418. "cog": null,
    419. "minDistance": null,
    420. "lon": null,
    421. "lat": null,
    422. "alarmTime": "2022-11-05 09:25:47",
    423. "beginTime": null,
    424. "finishTime": null,
    425. "reportTime": null,
    426. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    427. },
    428. {
    429. "startTime": "2022-11-05 09:21:16",
    430. "endTime": "2022-11-05 09:28:55",
    431. "eventLevel": "预警",
    432. "eventType": null,
    433. "mmsi": 413996871,
    434. "name": "未知",
    435. "nearestCable": null,
    436. "alarmDescription": null,
    437. "sog": null,
    438. "cog": null,
    439. "minDistance": null,
    440. "lon": null,
    441. "lat": null,
    442. "alarmTime": "2022-11-05 09:23:28",
    443. "beginTime": null,
    444. "finishTime": null,
    445. "reportTime": null,
    446. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    447. },
    448. {
    449. "startTime": "2022-11-05 09:21:16",
    450. "endTime": "2022-11-05 09:28:55",
    451. "eventLevel": "预警",
    452. "eventType": null,
    453. "mmsi": 413996871,
    454. "name": "未知",
    455. "nearestCable": null,
    456. "alarmDescription": null,
    457. "sog": null,
    458. "cog": null,
    459. "minDistance": null,
    460. "lon": null,
    461. "lat": null,
    462. "alarmTime": "2022-11-05 09:28:24",
    463. "beginTime": null,
    464. "finishTime": null,
    465. "reportTime": null,
    466. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    467. },
    468. {
    469. "startTime": "2022-11-05 09:21:16",
    470. "endTime": "2022-11-05 09:28:55",
    471. "eventLevel": "预警",
    472. "eventType": null,
    473. "mmsi": 413996871,
    474. "name": "未知",
    475. "nearestCable": null,
    476. "alarmDescription": null,
    477. "sog": null,
    478. "cog": null,
    479. "minDistance": null,
    480. "lon": null,
    481. "lat": null,
    482. "alarmTime": "2022-11-05 09:21:46",
    483. "beginTime": null,
    484. "finishTime": null,
    485. "reportTime": null,
    486. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    487. },
    488. {
    489. "startTime": "2022-11-05 09:21:16",
    490. "endTime": "2022-11-05 09:28:55",
    491. "eventLevel": "预警",
    492. "eventType": null,
    493. "mmsi": 413996871,
    494. "name": "未知",
    495. "nearestCable": null,
    496. "alarmDescription": null,
    497. "sog": null,
    498. "cog": null,
    499. "minDistance": null,
    500. "lon": null,
    501. "lat": null,
    502. "alarmTime": "2022-11-05 09:22:53",
    503. "beginTime": null,
    504. "finishTime": null,
    505. "reportTime": null,
    506. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    507. },
    508. {
    509. "startTime": "2022-11-05 09:21:16",
    510. "endTime": "2022-11-05 09:28:55",
    511. "eventLevel": "预警",
    512. "eventType": null,
    513. "mmsi": 413996871,
    514. "name": "未知",
    515. "nearestCable": null,
    516. "alarmDescription": null,
    517. "sog": null,
    518. "cog": null,
    519. "minDistance": null,
    520. "lon": null,
    521. "lat": null,
    522. "alarmTime": "2022-11-05 09:27:52",
    523. "beginTime": null,
    524. "finishTime": null,
    525. "reportTime": null,
    526. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    527. },
    528. {
    529. "startTime": "2022-11-05 09:21:16",
    530. "endTime": "2022-11-05 09:28:55",
    531. "eventLevel": "预警",
    532. "eventType": null,
    533. "mmsi": 413996871,
    534. "name": "未知",
    535. "nearestCable": null,
    536. "alarmDescription": null,
    537. "sog": null,
    538. "cog": null,
    539. "minDistance": null,
    540. "lon": null,
    541. "lat": null,
    542. "alarmTime": "2022-11-05 09:22:18",
    543. "beginTime": null,
    544. "finishTime": null,
    545. "reportTime": null,
    546. "groupByStr": "413996871_2022-11-05 09:21:16_2022-11-05 09:28:55_预警_未知"
    547. }
    548. ]
    549. },
    550. {
    551. "mmsi": 413842719,
    552. "name": "WANTIANYU1689",
    553. "startTime": "2022-11-05 11:18:48",
    554. "endTime": "2022-11-05 11:18:48",
    555. "eventLevel": "预警",
    556. "details": [
    557. {
    558. "startTime": "2022-11-05 11:18:48",
    559. "endTime": "2022-11-05 11:18:48",
    560. "eventLevel": "预警",
    561. "eventType": null,
    562. "mmsi": 413842719,
    563. "name": "WANTIANYU1689",
    564. "nearestCable": null,
    565. "alarmDescription": null,
    566. "sog": null,
    567. "cog": null,
    568. "minDistance": null,
    569. "lon": null,
    570. "lat": null,
    571. "alarmTime": "2022-11-05 11:18:48",
    572. "beginTime": null,
    573. "finishTime": null,
    574. "reportTime": null,
    575. "groupByStr": "413842719_2022-11-05 11:18:48_2022-11-05 11:18:48_预警_WANTIANYU1689"
    576. },
    577. {
    578. "startTime": "2022-11-05 11:18:48",
    579. "endTime": "2022-11-05 11:18:48",
    580. "eventLevel": "预警",
    581. "eventType": null,
    582. "mmsi": 413842719,
    583. "name": "WANTIANYU1689",
    584. "nearestCable": null,
    585. "alarmDescription": null,
    586. "sog": null,
    587. "cog": null,
    588. "minDistance": null,
    589. "lon": null,
    590. "lat": null,
    591. "alarmTime": "2022-11-05 11:18:48",
    592. "beginTime": null,
    593. "finishTime": null,
    594. "reportTime": null,
    595. "groupByStr": "413842719_2022-11-05 11:18:48_2022-11-05 11:18:48_预警_WANTIANYU1689"
    596. }
    597. ]
    598. }
    599. ];
    600. // 数据整理
    601. let serveTransData = [];
    602. let merges = []; //合并规律
    603. let cow = 5; // 前五列合并
    604. let startRow = 0;
    605. let endRow = 0;
    606. serveData.forEach(({ details = [] }) => {
    607. const mapData = details.map(item => {
    608. let tempData = {}
    609. serveHead.forEach(v => {
    610. const [code, name] = Object.entries(v)[0];
    611. tempData[name] = item[code];
    612. });
    613. return tempData;
    614. });
    615. serveTransData.push(...mapData);
    616. endRow += details.length;
    617. for (let i = 0; i < cow; i++) {
    618. merges.push({
    619. // c => 列 r => 行
    620. s: { c: i, r: startRow + 1 }, e: { c: i, r: endRow }
    621. })
    622. };
    623. startRow = endRow;
    624. });
    625. function doit(type) {
    626. var sheetName = 'Sheet1';
    627. var wb = {
    628. SheetNames: [sheetName],
    629. Sheets: {},
    630. Props: {}
    631. };
    632. var data = XLSX.utils.json_to_sheet(serveTransData);
    633. wb.Sheets[sheetName] = data;
    634. XSU.mergeCellsByObj(wb, sheetName, merges); // merges单元合并规则
    635. XSU.setAlignmentHorizontalAll(wb, sheetName, 'center');//垂直居中
    636. XSU.setAlignmentVerticalAll(wb, sheetName, 'center');//水平居中
    637. XSU.setFontBoldOfRows(wb, sheetName, true, '1');//设置第二行标题行加粗
    638. //列宽设置 1wch为1英文字符宽度
    639. var width = new Array(serveHead.length).fill({ wch: 20 });
    640. XSU.setColWidth(wb, sheetName, width);
    641. //转换成二进制 使用xlsx-style(XS)进行转换才能得到带样式Excel
    642. var wBout = xlsxStyle.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' });
    643. saveAs(new Blob([XSU.s2ab(wBout)]), "test.xlsx");
    644. }
    645. script>
    646. <input type="submit" value="Export!" onclick="doit();">
    647. body>
    648. html>

    合并规则      

          data["!merges"] = [

          //   // c => 列

          //   // r => 行

          //   纵向合并,范围是第1列的行1到行2

          //   { s: { c: 1, r: 1 }, e: { c: 1, r: 2 } }, // 纵向合并,范围是第2列的行1到行2

          //   { s: { c: 2, r: 1 }, e: { c: 2, r: 2 } }, // 纵向合并,范围是第3列的行1到行2

          //   { s: { c: 3, r: 1 }, e: { c: 3, r: 2 } }, // 纵向合并,范围是第4列的行1到行2

          //   { s: { c: 4, r: 1 }, e: { c: 4, r: 2 } }, // 纵向合并,范围是第5列的行1到行2

          //   // 第二组

          //   { s: { c: 0, r: 3 }, e: { c: 0, r: 4 } }, // 纵向合并,范围是第1列的行3到行4

          //   { s: { c: 1, r: 3 }, e: { c: 1, r: 4 } }, // 纵向合并,范围是第2列的行3到行4

          //   { s: { c: 2, r: 3 }, e: { c: 2, r: 4 } }, // 纵向合并,范围是第3列的行3到行4

          //   { s: { c: 3, r: 3 }, e: { c: 3, r: 4 } }, // 纵向合并,范围是第4列的行3到行4

          //   { s: { c: 4, r: 3 }, e: { c: 4, r: 4 } }, // 纵向合并,范围是第5列的行3到行4

          // ];

    文档地址: GitHub - Ctrl-Ling/XLSX-Style-Utils: 基于SheetJS以及XLSX-Style的纯前端带样式导出表格为Excel的工具包

  • 相关阅读:
    彻底解决 IDC Incast
    TP4586双路独立控制的 TWS 充电仓解决方案
    [论文阅读] 颜色迁移-Correlated Color Space
    怎么裁剪视频时长?建议收藏这些方法
    性能测试 —— Jmeter 常用三种定时器!
    2022-09-28 C++并发编程(二十七)
    Android性能优化方法论
    10种靠谱又收益不错的在家就可以做的网赚兼职平台介绍
    Android 使用 GeckoView 并实现 js 交互、权限交互
    分析智能平台VMware Greenplum 7 正式发布!
  • 原文地址:https://blog.csdn.net/qq_25919495/article/details/127744742