Сгенерируйте соответствующую графику на основе переданных параметров.
Скопируйте код кода следующим образом:
loadChart: функция (данные, элемент) {
вар, что = это;
require(['echarts', 'echarts/chart/bar', 'echarts/chart/line',
'echarts/chart/pie'], function(ec) {
that.body.setHeight(800);
вар myChart = ec.init(that.body.dom);
myChart.showLoading({
text : "Данные диаграммы не загружаются..."
});
вар опция = {
подсказка : {
триггер: «ось»,
axisPointer: { // Индикатор оси, триггер оси действителен
type: 'shadow' // По умолчанию — прямая линия, необязательно: 'line' 'shadow'
}
},
легенда : {
данные: данные.indis,
х: «слева»,
y: 'верхний'
},
ящик с инструментами : {
показать: правда,
ориентация: «вертикальная»,
х: «право»,
y: «центр»,
особенность : {
отметка : {
показать: правда
},
просмотр данных: {
показать: правда,
только для чтения: правда
},
магическийтип: {
показать: правда,
тип: ['линия', 'бар', 'стек', 'плитка']
},
восстановить : {
показать: правда
},
saveAsImage : {
показать: правда
}
}
},
вычислимый: правда,
анимация: ложь,
хОсь : [{
тип: 'категория',
данные: data.grp
}],
yAxis : [{
тип: 'значение',
разделенная область: {
показать: правда
}
}],
серия: data.bar.series
};
}
мояДиаграмма.hideLoading();
myChart.setOption(опция);
that.imgURL = myChart.getDataURL('png');//Получить кодировку base64
});
},
initEChart : функция(){
require.config({
пути:{
'echarts':'js/com/bhtec/echart/ecarts',
'echarts/chart/bar': 'js/com/bhtec/echart/echarts',
'echarts/chart/line': 'js/com/bhtec/echart/echarts',
'echarts/chart/pie': 'js/com/bhtec/echart/ecarts'
}
});
}
Передача данных на серверную часть
Скопируйте код кода следующим образом:
doExport: функция(){
вар URL = this.chartPanel.getImageURL();
var title = Ext.fly('indi-display-title-id').first().dom.innerHTML;
var left = Ext.getCmp("indi_pivotGrid_id").leftAxis.getTuples();
var t = Ext.getCmp("indi_pivotGrid_id").topAxis.getTuples();
//TODO Получить кодировку изображения base64
Ext.Ajax.request({
URL: 'индикатор/exp2excl.mvc',
параметры: {
imgURL: URL,
слева: getS (слева)
}
});
функция getS(d){
вар arr = [],str;
for(var i=0;i<d.length;i++){
вар s = IndiFn.getAxisStr(d[i]);
arr.push(s);
}
ул = arr.join(',');
вернуть ул;
}
var data = Ext.getCmp("indi_pivotGrid_id").extractData();
вар s,arr=[];
for(var i=0;i<data.length;i++){
arr.push(данные [я]);
}
window.open('indicator/exportList2Excel.mvc?title='+encodeURIComponent(encodeURIComponent(title))+'&left='+encodeURIComponent(encodeURIComponent(getS(left)))+'' +
'&top='+encodeURIComponent(encodeURIComponent(getS(t)))+'&data='+arr.join(';'));
}
Разобрать base64 и сгенерировать изображения
Скопируйте код кода следующим образом:
public void base64TOpic (String fileName, HttpServletRequest req) {
//Base64 декодирует строку массива байтов и генерирует изображение
if (imgsURl == null) //Данные изображения пусты
возвращаться ;
Декодер BASE64Decoder = новый BASE64Decoder();
пытаться
{
String[] url = imgsURl.split(",");
Строка u = URL[1];
//Декодирование Base64
буфер byte[] = новый BASE64Decoder().decodeBuffer(u);
//Генерируем картинки
OutputStream out = new FileOutputStream(new File(req.getRealPath("pic/"+fileName+".jpg")));
out.write(буфер);
out.flush();
выход.закрыть();
возвращаться;
}
поймать (Исключение e)
{
возвращаться;
}
}
Рисуйте картинки через poi и вставляйте их в Excel.
Скопируйте код кода следующим образом:
строка = лист.createRow(индекс+3);
HSSFCell headerCell = row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(title);
строка = лист.createRow(индекс + 6);
Ячейки HSSFCell = row.createCell(0);
cell.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = новый ByteArrayOutputStream(); // Записываем изображение в поток.
BufferedImage bufferImg = ImageIO.read(new File(req.getRealPath("pic/"+fileName+".jpg")));
ImageIO.write(bufferImg, "PNG", outStream // Используйте HSSFPatriarch для записи изображений в EXCEL);
HSSFPatriarch patri =sheet.createDrawingPatriarch();
Привязка HSSFClientAnchor = новый HSFClientAnchor(5, 5, 5, 5,
(короткий) 1, индекс + 6, (короткий) 6, 45);
patri.createPicture(anchor, workbook.addPicture(
outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
пытаться {
workbook.write(выход);
out.flush();
выход.закрыть();
} catch (IOException e) {
е.printStackTrace();
}