Hasilkan grafik yang sesuai berdasarkan parameter yang diteruskan
Copy kode kodenya sebagai berikut:
loadChart: fungsi(data,item){
var itu = ini;
membutuhkan(['charts', 'charts/bagan/bar', 'charts/bagan/garis',
'chart/bagan/pie'], fungsi(ec) {
itu.tubuh.setHeight(800);
var myChart = ec.init(itu.tubuh.dom);
myChart.showLoading({
text : "Data grafik sulit dimuat..."
});
opsi var = {
keterangan alat : {
pemicu : 'sumbu',
axisPointer: { // Indikator sumbu, pemicu sumbu valid
ketik: 'bayangan' // Defaultnya adalah garis lurus, opsional: 'garis' |.
}
},
legenda : {
data: data.indis,
x : 'kiri',
kamu : 'atas'
},
kotak peralatan : {
tunjukkan: benar,
orientasi : 'vertikal',
x : 'benar',
y : 'tengah',
fitur : {
tanda : {
menunjukkan: benar
},
tampilan data : {
tunjukkan: benar,
hanya baca: benar
},
Tipe ajaib : {
tunjukkan: benar,
ketik : ['baris', 'batang', 'tumpukan', 'ubin']
},
memulihkan : {
menunjukkan: benar
},
simpanSebagaiGambar : {
menunjukkan: benar
}
}
},
dapat dihitung: benar,
animasi: salah,
sumbu x : [{
ketik : 'kategori',
data: data.grp
}],
sumbu y : [{
ketik: 'nilai',
area terpisah : {
menunjukkan: benar
}
}],
seri: data.bar.series
};
}
myChart.hideLoading();
myChart.setOption(opsi);
that.imgURL = myChart.getDataURL('png');//Dapatkan pengkodean base64
});
},
initECart : fungsi(){
memerlukan.config({
jalur:{
'chart':'js/com/bhtec/echart/chart',
'echarts/chart/bar' : 'js/com/bhtec/echart/echarts',
'echarts/chart/line': 'js/com/bhtec/echart/echarts',
'echarts/chart/pie': 'js/com/bhtec/echart/echarts'
}
});
}
Meneruskan data ke backend
Copy kode kodenya sebagai berikut:
lakukanEkspor: fungsi(){
var url = ini.chartPanel.getImageURL();
var title = Ext.fly('indi-display-title-id').first().dom.innerHTML;
var kiri = Ext.getCmp("indi_pivotGrid_id").leftAxis.getTuples();
var t = Ext.getCmp("indi_pivotGrid_id").topAxis.getTuples();
//TODO Dapatkan pengkodean gambar base64
Ext.Ajax.permintaan({
url: 'indikator/exp2excl.mvc',
parameter : {
URL gambar:url,
kiri:getS(kiri)
}
});
fungsi dapatkanS(d){
var arr = [],str;
for(var i=0;i<d.panjang;i++){
var s = IndiFn.getAxisStr(d[i]);
arr.push(s);
}
str = arr.gabung(',');
kembalikan str;
}
var data = Ext.getCmp("indi_pivotGrid_id").extractData();
var s,arr=[];
for(var i=0;i<data.panjang;i++){
arr.push(data[i]);
}
window.open('indicator/exportList2Excel.mvc?title='+encodeURIComponent(encodeURIComponent(title))+'&left='+encodeURIComponent(encodeURIComponent(getS(kiri)))+'' +
'&top='+encodeURIComponent(encodeURIComponent(getS(t)))+'&data='+arr.join(';'));
}
Parsing base64 dan hasilkan gambar
Copy kode kodenya sebagai berikut:
public void base64TOpic(String nama file, permintaan HttpServletRequest) {
//Base64 mendekode string array byte dan menghasilkan gambar
if (imgsURl == null) //Data gambar kosong
kembali ;
Dekoder BASE64Decoder = BASE64Decoder baru();
mencoba
{
String[] url = imgsURl.split(",");
Tali u = url[1];
//Penguraian kode Base64
byte[] buffer = BASE64Decoder baru().decodeBuffer(u);
//Hasilkan gambar
OutputStream keluar = FileOutputStream baru(File baru(req.getRealPath("pic/"+namafile+".jpg")));
keluar.tulis(buffer);
keluar.flush();
keluar.tutup();
kembali;
}
tangkapan (Pengecualian e)
{
kembali;
}
}
Buatlah gambar melalui poi dan masukkan gambar tersebut ke dalam excel
Copy kode kodenya sebagai berikut:
baris = sheet.createRow(indeks+3);
HSSFCell headerCell = baris.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(judul);
baris = sheet.createRow(indeks + 6);
Sel HSSFCell = baris.createCell(0);
sel.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = new ByteArrayOutputStream(); // Tulis gambar ke aliran
BufferedImage bufferImg = ImageIO.read(File baru(req.getRealPath("pic/"+fileName+".jpg")));
ImageIO.write(bufferImg, "PNG", outStream); // Gunakan HSSFPatriarch untuk menulis gambar ke EXCEL
HSSFPatriarch patri = sheet.createDrawingPatriarch();
Jangkar HSSFClientAnchor = HSSFClientAnchor baru(5, 5, 5, 5,
(pendek) 1, indeks + 6, (pendek) 6, 45);
patri.createPicture(jangkar, buku kerja.addPicture(
outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
mencoba {
buku kerja.write(keluar);
keluar.flush();
keluar.tutup();
} tangkapan (IOException e) {
e.printStackTrace();
}