1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <!--
- * @Author : yuanrunwei
- * @Date : 2021-12-04 14:23:58
- * @LastEditors : yuanrunwei
- * @LastEditTime : 2021-12-04 15:38:33
- * @FilePath : \spfm-market-front\src\pages\main\performance\components\sheet.vue
- -->
- <template>
- <div class="sheet-container">
- <el-upload action :on-change="handleChange" :show-file-list="false">
- <el-button size="mini" type="success">上传</el-button>
- </el-upload>
- <div id="luckysheet" class="sheet-container-block"></div>
- </div>
- </template>
- <script>
- import XLSX from "xlsx";
- import luckyexcel from "luckyexcel";
- export default {
- data() {
- return {};
- },
- methods: {
- handleInit() {},
- handleCreate(file) {
- luckyexcel.transformExcelToLucky(file, (export_json) => {
- var options = {
- container: "luckysheet",
- data: export_json.sheets,
- title: export_json.info.name,
- userInfo: export_json.info.name.creator,
- };
- window.luckysheet.create(options);
- });
- },
- async handleChange(response) {
- this.handleCreate(response.raw);
- let binary = await this.handleFile(response.raw);
- let workbook = XLSX.read(binary, {
- type: "binary",
- cellDates: true,
- });
- let sheet = workbook.Sheets[workbook.SheetNames[0]];
- const data = XLSX.utils.sheet_to_json(sheet);
- this.handleCreate(data);
- },
- handleFile(file) {
- return new Promise((resolve) => {
- let reader = new FileReader();
- reader.readAsBinaryString(file);
- reader.onload = (event) => {
- resolve(event.target.result);
- };
- });
- },
- },
- mounted() {
- this.handleInit();
- },
- };
- </script>
- <style lang="scss" scope>
- .sheet-container {
- position: relative;
- width: 1200px;
- height: 500px;
- &-block {
- position: absolute;
- width: calc(100% - 40px);
- height: 100%;
- }
- }
- </style>
|