jexcel在vue項(xiàng)目中的基本使用

1.安裝:

// 方式一:npm安裝
npm install jexcel

// 方式二:index.html引入
<script src="https://bossanova.uk/jexcel/v4/jexcel.js"></script>
<script src="https://bossanova.uk/jsuites/v2/jsuites.js"></script>
<link rel="stylesheet"  type="text/css" />
<link rel="stylesheet"  type="text/css" />

2.vue文件中:

一:創(chuàng)建容器
<div id="spreadsheet"></div>

二:實(shí)例化
var data = [
    ['Jazz', 'Honda', '2019-02-12', '', true, '$ 2.000,00', '#777700'],
    ['Civic', 'Honda', '2018-07-11', '', true, '$ 4.000,01', '#007777'],
];

jexcel(document.getElementById('spreadsheet'), {
    data:data,
    columns: [
        { type: 'text', title:'Car', width:120 },
        { type: 'dropdown', title:'Make', width:200, source:[ "Alfa Romeo", "Audi", "Bmw" ] },
        { type: 'calendar', title:'Available', width:200 },
        { type: 'image', title:'Photo', width:120 },
        { type: 'checkbox', title:'Stock', width:80 },
        { type: 'numeric', title:'Price', width:100, mask:'$ #.##,00', decimal:',' },
        { type: 'color', width:100, render:'square', }
     ]
});

3.常用api

1.Option
parseFormulas:true,// 計(jì)算功能
wordWrap: true,// 自動換行
rowResize: true,// 行高可改變
tableHeight: 'calc(100% - 160px)',// 表格高度
tableWidth: 'calc(100% - 5px)',// 表格寬度
secureFormulas: true,// 強(qiáng)制轉(zhuǎn)為大寫
toolbar:[],// 工具欄
2.option中的toolbar配置
toolbar: [
                // 撤銷
                {
                            type: 'i',
                            content: 'undo',
                            onclick: function (element, instance) {
                                instance.undo()
                            },
                  },
                // 前進(jìn)
                  {
                            type: 'i',
                            content: 'redo',
                            onclick: function (element, instance) {
                                instance.redo()
                            },
                  },
                // 下載(我這是自己封裝的導(dǎo)出方法,它是帶樣式及格式的现喳,詳情見我的另一篇文章:http://www.reibang.com/p/8ea0e59cfd3b)
                  {
                            type: 'i',
                            content: 'cloud_download',
                            onclick: (element, instance) => {
                                let fileNames = ''
                                that.editableTabs.forEach((item) => {
                                    if (item.tableType === that.editableTabsValue) {
                                        fileNames = item.tableValue
                                    }
                                })
                                exportReports(fileNames, 'xlsx', jexcel, instance)
                            },
                  },
                // 字體類型
                  {
                            type: 'select',
                            k: 'font-family',
                            v: ['Arial', 'Verdana'],
                  },
                // 字體大小
                  {
                            type: 'select',
                            k: 'font-size',
                            v: [
                                '9px',
                                '10px',
                                '11px',
                                '12px',
                                '13px',
                                '14px',
                                '15px',
                                '16px',
                                '17px',
                                '18px',
                                '19px',
                                '20px',
                            ],
                    },
                // 字體對齊方式
                   {
                            type: 'i',
                            content: 'format_align_left',
                            k: 'text-align',
                            v: 'left',
                    },
                    {
                            type: 'i',
                            content: 'format_align_center',
                            k: 'text-align',
                            v: 'center',
                    },
                    {
                            type: 'i',
                            content: 'format_align_right',
                            k: 'text-align',
                            v: 'right',
                    },
                // 合并行列
                    {
                            type: 'i',
                            content: 'tab_unselected',
                            onclick: function (element, instance) {
                                let mergeRows = Number(instance.selectedCell[3]) - Number(instance.selectedCell[1]) + 1
                                let mergeCols = Number(instance.selectedCell[2]) - Number(instance.selectedCell[0]) + 1
                                instance.setMerge(mergeStart, mergeCols, mergeRows) // 起始單元格名稱, 合并列, 合并行
                            },
                    },
                // 字體粗細(xì)
                    {
                            type: 'i',
                            content: 'format_bold',
                            k: 'font-weight',
                            v: 'bold',
                    },
                // 字體顏色
                    {
                            type: 'i',
                            content: 'format_color_text',
                            k: 'color',
                            onclick: function (element, instance, item) {
                                if (!item.color) {
                                    let colorPicker = jSuites.color(item, {
                                        onchange: function (o, v) {
                                            cellPicker(o, v, instance, 'color')
                                        },
                                    })
                                    colorPicker.open()
                                }
                            },
                        },
                // 單元格背景色
                        {
                            type: 'color',
                            content: 'format_color_fill',
                            k: 'background-color',
                            onclick: function (element, instance, item) {
                                if (!item.color) {
                                    let colorPicker = jSuites.color(item, {
                                        onchange: function (o, v) {
                                            cellPicker(o, v, instance, 'backgroundColor')
                                        },
                                    })
                                    colorPicker.open()
                                }
                            },
                     },
]

2.Spread:jexcel對象(調(diào)用api需要用到)
spread = jexcel(dom元素, option)
Option:配置項(xiàng)
例如:let option = {
                    data: [[]],
                    minDimensions: item.minDimensions,
                    allowToolbar: true,
                    ...
                   }

3.setValue(單元格cell或者cell數(shù)組,設(shè)置的值)
jexcel.current.setValue(jexcel.current.highlighted, '')

4.getCell([縱坐標(biāo),橫坐標(biāo)])
spread.getCell([y, x])

5.insertRow
insertRow:添加新行
@Param mix - 要插入的空行數(shù)或帶有新行數(shù)據(jù)的單個(gè)數(shù)組
@Param integer rowNumber - 引用行號
@param boolean insertBefore - 是否在行前插入
spread.insertRow()

6.insertColumn
insertColumn:添加新列
@param
mix -要添加的列數(shù)或要添加到單個(gè)列中的數(shù)據(jù)
@param int columnNumber - 要?jiǎng)?chuàng)建的列數(shù)
@param boolean insertBefore
@param object properties - 列屬性
spread.insertColumn()

7.insertColumn
setMerge:合并單元格
@Param string columnName - 列名憔涉,如A1奶是。
@Param integer colspan - 列數(shù)
@Param integer rowspan - 行數(shù)
spread.setMerge(key, mergeData[key][0], mergeData[key][1])

8.getData
getData : 獲取完整或部分表格數(shù)據(jù)
// Get the full or partial table data
spreadsheet.getData(Boolean onlyHighlighedCells)

9.getRowData
getRowData:從一行中按數(shù)字獲取數(shù)據(jù)
@Param integer rowNumber - 行號
spread.getRowData(x)

10.setWidth
setWidth:更改列寬
@Param integer columnNumber - 從零開始的列號
@Param string newColumnWidth - 新的列寬
spread.setWidth(locY, 110)

11.setHeight
setHeight:更改行高
@Param integer rowNumber - 從零開始的行號
@Param string newRowHeight- 新行高
item.spread.setHeight(locX, Number(String(v.rowHeight).replace('px', '')))

12.getHeight
getHeight:獲取當(dāng)前行高
@Param integer rowNumber - 從零開始的行號
spread.getHeight()[i]

13.getWidth
getWidth:獲取當(dāng)前列寬
@Param integer columnNumber - 從零開始的列號
item.spread.getWidth()[j]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載基矮,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者掏父。
  • 序言:七十年代末笋轨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赊淑,更是在濱河造成了極大的恐慌爵政,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膏燃,死亡現(xiàn)場離奇詭異茂卦,居然都是意外死亡何什,警方通過查閱死者的電腦和手機(jī)组哩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來处渣,“玉大人伶贰,你說我怎么就攤上這事」拚唬” “怎么了黍衙?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荠诬。 經(jīng)常有香客問我琅翻,道長,這世上最難降的妖魔是什么柑贞? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任方椎,我火速辦了婚禮,結(jié)果婚禮上钧嘶,老公的妹妹穿的比我還像新娘棠众。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布闸拿。 她就那樣靜靜地躺著空盼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪新荤。 梳的紋絲不亂的頭發(fā)上揽趾,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音迟隅,去河邊找鬼但骨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛智袭,可吹牛的內(nèi)容都是我干的奔缠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吼野,長吁一口氣:“原來是場噩夢啊……” “哼校哎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瞳步,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闷哆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后单起,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抱怔,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年嘀倒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屈留。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡测蘑,死狀恐怖灌危,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碳胳,我是刑警寧澤勇蝙,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站挨约,受9級特大地震影響味混,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诫惭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一翁锡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贝攒,春花似錦盗誊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荒适。三九已至,卻和暖如春开镣,著一層夾襖步出監(jiān)牢的瞬間刀诬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工邪财, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陕壹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓树埠,卻偏偏與公主長得像糠馆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子怎憋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容