mirror of
https://github.com/501351981/vue-office.git
synced 2025-07-25 07:41:42 +08:00
add: 增加excel对日期的支持
This commit is contained in:
parent
2cfbf69791
commit
ba12ef4739
File diff suppressed because one or more lines are too long
2
examples/dist/index.html
vendored
2
examples/dist/index.html
vendored
@ -7,7 +7,7 @@
|
||||
content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
|
||||
/>
|
||||
<title>Vite + Vue</title>
|
||||
<script type="module" crossorigin src="/vue-office/examples/dist/assets/index-996e5f27.js"></script>
|
||||
<script type="module" crossorigin src="/vue-office/examples/dist/assets/index-737025cc.js"></script>
|
||||
<link rel="stylesheet" href="/vue-office/examples/dist/assets/index-606d65f9.css">
|
||||
</head>
|
||||
<body>
|
||||
|
@ -4,6 +4,7 @@
|
||||
"description": "通过Vue开发的办公文档预览组件,支持docx、pdf、ppt、excel(已实现)的预览",
|
||||
"scripts": {},
|
||||
"dependencies": {
|
||||
"dayjs": "^1.11.7",
|
||||
"docx-preview": "^0.1.14",
|
||||
"exceljs": "^4.3.0",
|
||||
"lodash": "^4.17.21",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue-office/excel",
|
||||
"version": "0.2.7",
|
||||
"version": "0.2.8",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -3,6 +3,7 @@ import {getUrl} from '../../../utils/url';
|
||||
import tinycolor from 'tinycolor2';
|
||||
import _, {cloneDeep} from 'lodash';
|
||||
import {getDarkColor, getLightColor} from './color';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const themeColor = [
|
||||
'#FFFFFF',
|
||||
@ -18,7 +19,7 @@ const themeColor = [
|
||||
];
|
||||
|
||||
let defaultColWidth = 80;
|
||||
|
||||
const weekday = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
|
||||
export function getData(src, options={}) {
|
||||
return fetchExcel(getUrl(src), options);
|
||||
}
|
||||
@ -58,24 +59,37 @@ function transferColumns(excelSheet, spreadSheet, options){
|
||||
}
|
||||
|
||||
function getCellText(cell){
|
||||
if(typeof cell.value === 'number'){
|
||||
return cell.value + '';
|
||||
//console.log(cell);
|
||||
const {numFmt, value, type} = cell;
|
||||
switch (type){
|
||||
case 2: //数字
|
||||
return value + '';
|
||||
case 3: //字符串
|
||||
return value;
|
||||
case 4: //日期
|
||||
switch (numFmt){
|
||||
case 'yyyy-mm-dd;@':
|
||||
return dayjs(value).format('YYYY-MM-DD');
|
||||
case 'mm-dd-yy':
|
||||
return dayjs(value).format('YYYY/MM/DD');
|
||||
case '[$-F800]dddd, mmmm dd, yyyy':
|
||||
return dayjs(value).format('YYYY年M月D日 ddd');
|
||||
case 'm"月"d"日";@':
|
||||
return dayjs(value).format('M月D日');
|
||||
case 'yyyy/m/d h:mm;@':
|
||||
case 'm/d/yy "h":mm':
|
||||
return dayjs(value).subtract(8, 'hour').format('YYYY/M/DD HH:mm');
|
||||
case 'h:mm;@':
|
||||
return dayjs(value).format('HH:mm');
|
||||
default:
|
||||
return dayjs(value).format('YYYY-MM-DD');
|
||||
}
|
||||
let cellText = '';
|
||||
if(cell.value && cell.value.result) {
|
||||
// Excel 单元格有公式
|
||||
cellText = cell.value.result;
|
||||
} else if(cell.value && cell.value.richText) {
|
||||
// Excel 单元格是多行文本
|
||||
for(let text in cell.value.richText) {
|
||||
// 多行文本做累加
|
||||
cellText += cell.value.richText[text].text;
|
||||
|
||||
case 6: //公式
|
||||
return cell.result;
|
||||
default:
|
||||
return value;
|
||||
}
|
||||
} else {
|
||||
// Excel 单元格无公式
|
||||
cellText = cell.value;
|
||||
}
|
||||
return cellText;
|
||||
}
|
||||
function transferArgbColor(originColor){
|
||||
if(typeof originColor === 'object'){
|
||||
@ -188,7 +202,7 @@ export function transferExcelToSpreadSheet(workbook, options){
|
||||
let workbookData = [];
|
||||
//console.log(workbook, 'workbook')
|
||||
workbook.eachSheet((sheet) => {
|
||||
//console.log(sheet,'sheet')
|
||||
// console.log(sheet,'sheet');
|
||||
// 构造x-data-spreadsheet 的 sheet 数据源结构
|
||||
let sheetData = { name: sheet.name,styles : [], rows: {},cols:{}, merges:[],media:[] };
|
||||
// 收集合并单元格信息
|
||||
|
2
pnpm-lock.yaml
generated
2
pnpm-lock.yaml
generated
@ -3,6 +3,7 @@ lockfileVersion: 5.4
|
||||
specifiers:
|
||||
'@vitejs/plugin-vue': ^4.0.0
|
||||
'@vue/composition-api': ^1.7.1
|
||||
dayjs: ^1.11.7
|
||||
docx-preview: ^0.1.14
|
||||
eslint: ^8.36.0
|
||||
eslint-plugin-vue: ^9.9.0
|
||||
@ -23,6 +24,7 @@ specifiers:
|
||||
x-data-spreadsheet: ^1.1.9
|
||||
|
||||
dependencies:
|
||||
dayjs: 1.11.7
|
||||
docx-preview: 0.1.15
|
||||
exceljs: 4.3.0
|
||||
lodash: 4.17.21
|
||||
|
Loading…
x
Reference in New Issue
Block a user