UNPKG

vuexcel-utils

Version:
59 lines (49 loc) 1.8 kB
/** * 插入到excel中 * @param {Array} data - 插入的数据,必须是一个二纬矩阵 * @param {string} [targetAddress] - 插入数据的位置 * @param {boolean} [exchange] - 是否矩阵交换 * @return {null} * */ import RequestContext = Excel.RequestContext; import Range = Excel.Range; import Worksheet = Excel.Worksheet; export declare interface Matrix extends Array<Array<any>> { } // 增加一个报错抛出 /** * @param {Matrix} data - 插入的数据 * @param {string} targetAddress - 插入的地址 * */ export default function (data: Matrix, targetAddress: string) { // 检测是否为空 如果为空则不进行任何操作 // if (data.length === 0 || (data.length === 1 && data[0].length === 0)) return null let yLength = data.length let xLength = data[0].length Excel.run((ctx: RequestContext) => { let workbook = ctx.workbook let range: Range // 预防没有给出address的情况 if (!targetAddress) { let range: Range = workbook.getSelectedRange() range.load('address') } else { let worksheet: Worksheet = ctx.workbook.worksheets.getActiveWorksheet() range = worksheet.getRange(targetAddress) } range.load('address') return ctx.sync() .then(() => { // 获取sheet 和 address let [sheet, address] = range.address.split('!') let targetWorksheet: Worksheet = workbook.worksheets.getItem(sheet) targetWorksheet.activate() range = targetWorksheet.getRange(address) range = range.getCell(0, 0) // 获取最左上角的cell range = range.getResizedRange(yLength - 1, xLength - 1) // 变换大小为目标矩阵大小 range.select() // 在excel中选中 range.values = data return ctx.sync() }) }) }