在vue中使用x-spreadsheet初記

作者給的例子是另一個(gè)項(xiàng)目里的:傳送門

這個(gè)例子下載后在win上有bug:
index.html第45,46行芯丧,引用的兩個(gè)文件是鏈接映跟,在win是不生效的,手動(dòng)下載這兩個(gè)文件
index.html 第55行莹弊,var xspr = x.spreadsheet(HTMLOUT)蟋恬,變量x未定義翁潘,改成x_spreadsheet(HTMLOUT)
改了之后就,瀏覽器打開index.html后就可以使用了歼争,效果還不錯(cuò)拜马。導(dǎo)出之后會(huì)丟失所有格式。
原文鏈接

導(dǎo)出文件:傳送門
用到的代碼沐绒,做個(gè)記錄吧:
// 引入依賴
import Spreadsheet from 'x-data-spreadsheet';
import XLSX from 'xlsx'
import zhCN from 'x-data-spreadsheet/src/locale/zh-cn';

Spreadsheet.locale('zh-cn', zhCN);


 mounted() {
    // this.init()
    this.initData()
  },
methods: {
initData() {
      let option  = {
        mode: 'edit', // edit | read
        showToolbar: false, // 頂部工具欄
        showGrid: true,
        showContextmenu: false, // 切換右鍵菜單顯示狀態(tài)
        showBottomBar: false,  // 底部工具欄
        view: {
          height: () => 570,
          // height: () => document.documentElement.clientHeight,
          // width: () => document.documentElement.clientWidth,
          width: () => document.getElementsByClassName('spreadsheet-box')[0].clientWidth,
        },
        row: {
          len: 100,
          height: 25,
        },
        col: {
          len: 26,
          width: 100,
          indexWidth: 60,
          minWidth: 60,
        },
        style: {
          bgcolor: '#ffffff',
          align: 'left',
          valign: 'middle',
          textwrap: false,
          strike: false,
          underline: false,
          color: '#0a0a0a',
          font: {
            name: 'Helvetica',
            size: 10,
            bold: false,
            italic: false,
          },
        },
      }

      const data1 = {
        name: 'sheet11',
        rows: {
          0: {cells: {0: {'text': 'id0', editable: false}, 1: {'text': 'name0', editable: false}}},
          1: {cells: {0: {'text': 'id1'}, 1: {'text': 'name1'}}}
        }
      }

      this.sheetObj = new Spreadsheet("#x-data-spreadsheet", option)
        .loadData(data1) // load data
        .change(res => {
          // save data to db
          // console.log('res--', res);
          // 導(dǎo)出數(shù)據(jù)
          this.exportExcelData = res
          // console.log('xs.getData()--', s.getData());
          // console.log('xs.getData()--', JSON.stringify(s.getData()));
        });
        // 禁止右鍵俩莽,右鍵有設(shè)置單元格可編輯菜單,防止修改表頭
        this.sheetObj.sheet.contextMenu.isHide = true
        // 導(dǎo)出數(shù)據(jù)
        this.exportExcelData = this.sheetObj.getData()
        // 設(shè)置凍結(jié)
        this.sheetObj.sheet.data.setFreeze(1, 0)

        // 編輯單元格觸發(fā)
        // s.on('cell-selected', (cell, ri, ci) => {
            // console.log('cell:', cell, ', ri:', ri, ', ci:', ci);
        // }).on('cell-edited', (text, ri, ci) => {
        //     console.log('text:', text, ', ri: ', ri, ', ci:', ci);
        // });
        

      // data validation
      this.sheetObj.validate()
    },
//導(dǎo)出
    exportExcel() {
      var new_wb = this.xtos(this.exportExcelData);
      /* generate download */
      XLSX.writeFile(new_wb, `學(xué)生信息${dayjs().format('YYYYMMDDHHmmss')}.xlsx`);
    },
    xtos(sdata) {
        var out = XLSX.utils.book_new();
        sdata.forEach(function(xws) {
            var aoa = [[]];
            var rowobj = xws.rows;
            for(var ri = 0; ri < rowobj.len; ++ri) {
                var row = rowobj[ri];
                if(!row) continue;
                aoa[ri] = [];
                Object.keys(row.cells).forEach(function(k) {
                    var idx = +k;
                    if(isNaN(idx)) return;
                    aoa[ri][idx] = row.cells[k].text;
                });
            }
            var ws = XLSX.utils.aoa_to_sheet(aoa);
            XLSX.utils.book_append_sheet(out, ws, xws.name);
        });
        return out;
    },
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乔遮,一起剝皮案震驚了整個(gè)濱河市扮超,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蹋肮,老刑警劉巖出刷,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異坯辩,居然都是意外死亡馁龟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門漆魔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坷檩,“玉大人,你說我怎么就攤上這事有送√视鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵雀摘,是天一觀的道長(zhǎng)裸删。 經(jīng)常有香客問我,道長(zhǎng)阵赠,這世上最難降的妖魔是什么涯塔? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任肌稻,我火速辦了婚禮,結(jié)果婚禮上匕荸,老公的妹妹穿的比我還像新娘爹谭。我一直安慰自己,他們只是感情好榛搔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布琳骡。 她就那樣靜靜地躺著,像睡著了一般揽咕。 火紅的嫁衣襯著肌膚如雪乡恕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天尔觉,我揣著相機(jī)與錄音凉袱,去河邊找鬼。 笑死侦铜,一個(gè)胖子當(dāng)著我的面吹牛专甩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钉稍,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼涤躲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了贡未?” 一聲冷哼從身側(cè)響起篓叶,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羞秤,沒想到半個(gè)月后缸托,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘾蛋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年俐镐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哺哼。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡佩抹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出取董,到底是詐尸還是另有隱情棍苹,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布茵汰,位于F島的核電站枢里,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜栏豺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一彬碱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奥洼,春花似錦巷疼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瓷患,卻和暖如春伏尼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尉尾。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留燥透,地道東北人沙咏。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像班套,于是被迫代替她去往敵國(guó)和親肢藐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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