Angular:Typescript:未捕获的 TypeError:无法设置未定义的属性“autoTable”
我尝试使用 angular 和 jspdf-autotable 导入一个简单的表格。但是我不能,这是错误
jspdf.plugin.autotable.js:1023 Uncaught TypeError: Cannot set property 'autoTable' of undefined
at Object.<anonymous> (jspdf.plugin.autotable.js:1023)
at __webpack_require__ (jspdf.plugin.autotable.js:39)
at jspdf.plugin.autotable.js:103
at jspdf.plugin.autotable.js:106
at webpackUniversalModuleDefinition (jspdf.plugin.autotable.js:12)
at Object../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js (jspdf.plugin.autotable.js:19)
at __webpack_require__ (bootstrap:84)
at Module../src/app/components/zone-list/zone-list.component.ts (zone-list.component.ts:12)
at __webpack_require__ (bootstrap:84)
at Module../src/app/app-routing.module.ts (app-routing.module.ts:3)
对于 package.json :
"jspdf": "^2.1.0",
"jspdf-autotable": "^2.3.5",
对于 .ts :
这里是 import :
import jsPDF from 'jspdf';
var autoTable = require('jspdf-autotable');
这里是下载功能 :
var head = [['ID', 'Country', 'Rank', 'Capital']]
var data = [
[1, 'Denmark', 7.526, 'Copenhagen'],
[2, 'Switzerland', 7.509, 'Bern'],
[3, 'Iceland', 7.501, 'Reykjavík'],
[4, 'Norway', 7.498, 'Oslo'],
[5, 'Finland', 7.413, 'Helsinki'],
]
const doc = new jsPDF()
autoTable(doc, {
head: head,
body: data,
didDrawCell: (data) => {
console.log(data.column.index)
},
})
doc.save('table.pdf')
告诉我哪里出错了?
如果将
var autoTable = require('jspdf-autotable')
替换为:
import autoTable from 'jspdf-autotable'
,会发生什么情况?
解决方案:请勿使用JSPDF,请使用pdfmake [https://www.npmjs.com/package/pdfmake/pdfmake]当然,有更好的功能,可以更轻松地编码
- 当我们谈论特殊功能或目的时,没有库是100%完美的。例如:我的案例是html表格在打字稿中的pdf。我的桌子屏幕截图,我不再需要担心我的屏幕截图,图像调整大小。此外,我有一个在PDF中的实际表,这意味着我可以从PDF复制数据,不仅是图像。
,因此让我们开始。
安装PDFMAKE:
(我的案例是为Angular安装的)
194143850
typescript代码:
导入:
612402940
写功能:
现在只需写一个您要触发的下载PDF的功能PDF下载按钮
995487238
- 我有一张桌子,上面有3列SLNO,名称,年龄。设计您的桌子 根据您的需要。
- 如果您有非弦乐项目,请将其转换为字符串(我必须 将我的年龄转换为字符串,如果您不这样做,您可能会有错误 - 我 必须面对)
- 您看到我必须提供一个不必要的行,然后将其删除。你可能 也必须这样做(我必须是因为我面临错误,如果您有 找到更好的解决方案,请发布)
礼貌:
我从下面的两个链接中获得了帮助: