169 похожих чатов

Привет всем подскажите, как во vue можно сгенерировать PDF из DOM?

html + css

6 ответов

4 просмотра

import XLSX from 'xlsx' import { saveAs } from 'file-saver' import jsPDF from 'jspdf' import 'jspdf-autotable' export default class Download { constructor (arrayData, filename, headArray) { this.arrayData = arrayData this.filename = filename this.headArray = headArray this.EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'; } downloadAsExel() { const worksheet = XLSX.utils.json_to_sheet(this.arrayData) const workbook = { Sheets: { 'data': worksheet}, SheetNames: ['data'] } const excelBuffer = XLSX.write(workbook, {bookType: 'xlsx', type: 'array'}) this.saveAsExcel(excelBuffer, this.filename) } saveAsExcel(buffer, filename) { const data = new Blob([buffer], {type: this.EXCEL_TYPE}) saveAs(data, filename + '.xlsx') } downloadAsPdf() { const asArray = this.arrayData.map(obj => Object.values(obj) ) const doc = new jsPDF() doc.autoTable({ head: [this.headArray], body: asArray }) doc.save(${this.filename}.pdf) } copyToClipboard() { const asArray = this.arrayData.map(obj => Object.values(obj) ) copy2DToClipboard(asArray); function copy2DToClipboard(array) { var csv = '', row, cell; for (row = 0; row < array.length; row++) { for (cell = 0; cell < array[row].length; cell++) { csv += (array[row][cell]+'').replace(/[\n\t]+/g, ' '); if (cell+1 < array[row].length) csv += '\t'; } if (row+1 < array.length) csv += '\n'; } copyTextToClipboard(csv); } function fallbackCopyTextToClipboard(text) { var textArea = document.createElement("textarea"); textArea.value = text; // Avoid scrolling to bottom textArea.style.top = "0"; textArea.style.left = "0"; textArea.style.position = "fixed"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Fallback: Copying text command was ' + msg); } catch (err) { console.error('Fallback: Oops, unable to copy', err); } document.body.removeChild(textArea); } function copyTextToClipboard(text) { if (!navigator.clipboard) { fallbackCopyTextToClipboard(text); return; } navigator.clipboard.writeText(text).then(function() { console.log('Async: Copying to clipboard was successful!'); }, function(err) { console.error('Async: Could not copy text: ', err); }); } } }

Tmq- Автор вопроса
Bega
import XLSX from 'xlsx' import { saveAs } from 'fi...

воувоувоу, спасибо! буду пробовать)

Tmq- Автор вопроса
Bega
import XLSX from 'xlsx' import { saveAs } from 'fi...

Эта библиотека весит очень много

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта