PHP と Vue.js を使用して統計グラフのエクスポートおよび印刷機能を実装する方法
統計グラフのエクスポートおよび印刷は、Web アプリケーションでは一般的な要件です。 PHP と Vue.js を使用すると、そのような機能を簡単に実装できます。この記事では、これら 2 つのテクノロジを使用して統計グラフのエクスポートおよび印刷機能を実装する方法と、対応するコード例を紹介します。
<template> <div class="chart-container"> <div ref="chart" class="chart"></div> </div> </template> <script> import echarts from 'echarts' export default { mounted() { this.chart = echarts.init(this.$refs.chart) this.renderChart() }, methods: { renderChart() { // 统计数据 const data = { categories: ['A', 'B', 'C', 'D', 'E'], series: [ { name: '数据1', data: [20, 30, 15, 40, 25] }, { name: '数据2', data: [10, 15, 25, 20, 30] } ] } // 配置项 const options = { title: { text: '统计图表' }, legend: { data: data.series.map(item => item.name) }, xAxis: { data: data.categories }, yAxis: {}, series: data.series.map(item => ({ name: item.name, type: 'bar', data: item.data })) } // 渲染图表 this.chart.setOption(options) } } } </script> <style scoped> .chart-container { width: 100%; height: 400px; } .chart { width: 100%; height: 100%; } </style>
echarts.getInstanceByDom(element) を使用できます。 echarts によって提供される)
メソッドでチャート インスタンスを取得し、対応するインターフェイスを呼び出してチャートをエクスポートします。 まず、エクスポート機能を実装するために、html2canvas
と jspdf
を導入する必要があります。最新バージョンのライブラリ ファイルは、公式 Web サイト (https://html2canvas.hertzen.com/、https://github.com/MrRio/jsPDF) からダウンロードできます。
次に、Vue コンポーネントの methods
にグラフをエクスポートするメソッドを追加します。
export default { methods: { exportChart() { // 获取图表实例 const chartInstance = echarts.getInstanceByDom(this.$refs.chart) // 导出为图片格式 chartInstance .capture() .then(canvas => { const imageData = canvas.toDataURL("image/png") const link = document.createElement("a") link.href = imageData link.download = "chart.png" link.click() }) .catch(error => console.error(error)) // 导出为PDF格式 chartInstance .capture() .then(canvas => { const imageData = canvas.toDataURL("image/png") const pdf = new jsPDF() pdf.addImage(imageData, "PNG", 0, 0) pdf.save("chart.pdf") }) .catch(error => console.error(error)) } } }
テンプレートにエクスポート ボタンを追加し、exportChart# をバインドします。 ## メソッド:
<template> <div> <div class="chart-container"> <div ref="chart" class="chart"></div> </div> <button @click="exportChart">导出图表</button> </div> </template>
methods にチャートを印刷するメソッドを追加します。
export default { methods: { printChart() { // 获取图表实例 const chartInstance = echarts.getInstanceByDom(this.$refs.chart) // 导出为图像 chartInstance .capture() .then(canvas => { const imageData = canvas.toDataURL("image/png") const pdf = new jsPDF() pdf.addImage(imageData, "PNG", 0, 0) pdf.autoPrint() window.open(pdf.output('bloburl'), '_blank') }) .catch(error => console.error(error)) } } }
printChart をバインドします。 方法:
<template> <div> <div class="chart-container"> <div ref="chart" class="chart"></div> </div> <button @click="printChart">打印图表</button> </div> </template>
以上がPHP と Vue.js を使用して統計グラフをエクスポートおよび印刷する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。