luckysheet實(shí)現(xiàn)打印

背景


  1. luckysheet 還沒有實(shí)現(xiàn)打印
  2. luckysheet 暴露了一個(gè) getScreenshot 方法兼蕊,可以返回表格指定選區(qū)的base64格式的截圖
  3. luckysheet忧吟,點(diǎn)擊表格左上角可以實(shí)現(xiàn)全選功能
  4. 利用 vue-print-nb 第三方庫(kù),調(diào)用系統(tǒng)打印

思路


點(diǎn)擊打印按鈕:
第一步:實(shí)現(xiàn)全選帜消;
第二步:生成選區(qū)的截圖;
第三步:根據(jù)選區(qū)生成打印內(nèi)容浓体,并調(diào)用系統(tǒng)打印

效果圖


01.png

點(diǎn)擊01圖片中的 打印按鈕后 的效果.png

代碼實(shí)現(xiàn)


<template>
    <div class="layout">
        <div class="layout-right">
            <div class="block">
                <div class="download">
                    <a v-if="reportCode != null" download="xxx.xlsx">
                        <el-button @click="download('gaea_template_excel')" type="success" plain>導(dǎo)出excel</el-button>
                    </a>
                    <div v-if="reportCode != null">
                      <el-button @click="printFn" type="success" plain v-print="'#print_html'">打印</el-button>
                    </div>
                </div>

                <el-form>
                    <h2>表格查詢</h2>
                    <div v-for="(item, num) in tableData2" :key="num + 'excel'">
                        <h4>{{ item.name }}</h4>
                        <div v-for="(son, y) in item.children" :key="y + 'excel2'" class="search_input">
                            <label>{{ son.name }}:</label>
                            <el-input v-model="son.value" />
                        </div>
                    </div>
                    <el-button style="width: 100%" @click="searchPreview" type="primary" plain>查詢</el-button>
                </el-form>
            </div>
        </div>

        <div class="layout-middle">
            <div id="luckysheet" />
        </div>

        <div id="print_html" style="text-align: center;"></div>
    </div>
</template>

<script>
export default {
    methods: {
        //初始化表格
        createSheet(){
            // 整體配置
            const options = {
                container: 'luckysheet', // 設(shè)定DOM容器的id
                title: '報(bào)表設(shè)計(jì)', // 設(shè)定表格名稱
                lang: 'zh', // 設(shè)定表格語(yǔ)言
                plugins:['chart'],
                data:[
                    {
                        "name": "report", //工作表名稱
                        "color": "", //工作表顏色
                        "index": 0, //工作表索引
                        "status": 1, //激活狀態(tài)
                        "order": 0, //工作表的下標(biāo)
                        "hide": 0,//是否隱藏
                        "row": 36, //行數(shù)
                        "column": 18, //列數(shù)
                        "defaultRowHeight": 19, //自定義行高
                        "defaultColWidth": 73, //自定義列寬
                        "celldata": [], //初始化使用的單元格數(shù)據(jù)
                        "config": {
                            "merge":{}, //合并單元格
                            "rowlen":{}, //表格行高
                            "columnlen":{}, //表格列寬
                            "rowhidden":{}, //隱藏行
                            "colhidden":{}, //隱藏列
                            "borderInfo":{}, //邊框
                            "authority":{}, //工作表保護(hù)
                        },
                        "scrollLeft": 0, //左右滾動(dòng)條位置
                        "scrollTop": 315, //上下滾動(dòng)條位置
                        "luckysheet_select_save": [], //選中的區(qū)域
                        "calcChain": [],//公式鏈
                        "isPivotTable":false,//是否數(shù)據(jù)透視表
                        "pivotTable":{},//數(shù)據(jù)透視表設(shè)置
                        "filter_select": {},//篩選范圍
                        "filter": null,//篩選配置
                        "luckysheet_alternateformat_save": [], //交替顏色
                        "luckysheet_alternateformat_save_modelCustom": [], //自定義交替顏色
                        "luckysheet_conditionformat_save": {},//條件格式
                        "frozen": {}, //凍結(jié)行列配置
                        "chart": [], //圖表配置
                        "zoomRatio":1, // 縮放比例
                        "image":[], //圖片
                        "showGridLines": 1, //是否顯示網(wǎng)格線
                        "dataVerification":{} //數(shù)據(jù)驗(yàn)證配置
                    }
                ],

                // 行數(shù)和列數(shù)都設(shè)置為1可以自動(dòng)去掉空的單元格
                row: 1,
                column: 1,

                // 是否顯示頂部信息欄
                showinfobar: false,
                // 是否顯示公式欄
                sheetFormulaBar: false,
                // 是否顯示底部sheet頁(yè)按鈕
                // showsheetbar: false,
                // 是否顯示工具欄
                showtoolbar: false,
                // 允許添加行
                enableAddRow: false,
                // 允許回到頂部
                enableAddBackTop: false,
                // 不允許編輯
                allowEdit: false,
                // 去掉行號(hào)列
                rowHeaderWidth: 0,
                // 去掉列號(hào)行
                columnHeaderHeight: 0,

                // 底部sheet頁(yè)配置
                showsheetbarConfig: {
                    add: false, // 添加sheet
                    menu: false, // sheet菜單
                    sheet: true, // sheet頁(yè)
                },
                // sheet頁(yè)右擊菜單
                sheetRightClickConfig: {
                    delete: false, // 刪除
                    copy: false, // 復(fù)制
                    rename: false, //重命名
                    color: false, //更改顏色
                    hide: false, //隱藏泡挺,取消隱藏
                    move: false, //向左移,向右移
                },
                
            };

            this.filterFn(); // 過濾數(shù)據(jù)(去掉空白的行和列)
            options.data = this.sheetData; // 工作表配置(也就是每個(gè)sheet表)

            $(function () {
                luckysheet.create(options);
            });
        },
        // 打印
        printFn() {
            // 1. 實(shí)現(xiàn)全選
            $('#luckysheet-left-top').click();
            // 2. 生成選區(qū)的截圖
            let src = luckysheet.getScreenshot();
            let $img = `<img src=${src} style="max-width: 90%;" />`
            this.$nextTick(() => {
                document.querySelector('#print_html').innerHTML = $img;
            })
            // 3. 調(diào)用系統(tǒng)打用 :已經(jīng)用v-print指令綁定在打印按鈕上
        },

    }
}
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娄猫,一起剝皮案震驚了整個(gè)濱河市贱除,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌媳溺,老刑警劉巖月幌,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異悬蔽,居然都是意外死亡扯躺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蝎困,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)录语,“玉大人,你說我怎么就攤上這事难衰∏瘴蓿” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵盖袭,是天一觀的道長(zhǎng)失暂。 經(jīng)常有香客問我,道長(zhǎng)鳄虱,這世上最難降的妖魔是什么弟塞? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮拙已,結(jié)果婚禮上决记,老公的妹妹穿的比我還像新娘。我一直安慰自己倍踪,他們只是感情好系宫,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著建车,像睡著了一般扩借。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缤至,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天潮罪,我揣著相機(jī)與錄音,去河邊找鬼领斥。 笑死嫉到,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的月洛。 我是一名探鬼主播何恶,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼膊存!你這毒婦竟也來(lái)了导而?” 一聲冷哼從身側(cè)響起忱叭,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤隔崎,失蹤者是張志新(化名)和其女友劉穎今艺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爵卒,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虚缎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钓株。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片实牡。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖轴合,靈堂內(nèi)的尸體忽然破棺而出创坞,到底是詐尸還是另有隱情,我是刑警寧澤受葛,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布题涨,位于F島的核電站,受9級(jí)特大地震影響总滩,放射性物質(zhì)發(fā)生泄漏纲堵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一闰渔、第九天 我趴在偏房一處隱蔽的房頂上張望席函。 院中可真熱鬧,春花似錦冈涧、人聲如沸茂附。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)营曼。三九已至,卻和暖如春咽筋,著一層夾襖步出監(jiān)牢的瞬間溶推,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工奸攻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蒜危,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓睹耐,卻偏偏與公主長(zhǎng)得像辐赞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子硝训,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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