导出报表

public String export() {
        HttpServletResponse response = ServletActionContext.getResponse();
        filename = filename==null?"chart":filename;
        ServletOutputStream out = null;
        try {
            out = response.getOutputStream();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        if (null != type && null != svg) {
            svg = this.handleSvg(svg);
            String ext = "";
            Transcoder t = null;
            if (type.equals("image/png")) {
                ext = "png";
                t = new PNGTranscoder();
            } else if (type.equals("image/jpeg")) {
                ext = "jpg";
                t = new JPEGTranscoder();
            } else if (type.equals("application/pdf")) {
                ext = "pdf";
                t =(Transcoder) new PDFTranscoder();
            } else if(type.equals("image/svg+xml"))
                ext = "svg";
            response.addHeader("Content-Disposition", "attachment; filename="+ filename + "."+ext);
            response.addHeader("Content-Type", type);

            if (null != t) {
                TranscoderInput input = new TranscoderInput(new StringReader(svg));
                TranscoderOutput output = new TranscoderOutput(out);
                try {
                    t.transcode(input, output);
                } catch (TranscoderException e) {
                    try {
                        out.print("Problem transcoding stream. See the web logs for more details.");
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                    e.printStackTrace();
                }
            } else if (ext.equals("svg")) {
                try {
                    OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");
                    writer.append(svg);
                    writer.close();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }catch (IOException e1) {
                    e1.printStackTrace();
                }
            } else
                try {
                    out.print("Invalid type: " + type);
                } catch (IOException e) {
                    e.printStackTrace();
                }
        } else {
            response.addHeader("Content-Type", "text/html");
            try {
                out.println("Usage:\n\tParameter [svg]: The DOM Element to be converted." +
                        "\n\tParameter [type]: The destination MIME type for the elment to be transcoded.");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
时间: 2024-10-17 00:14:14

导出报表的相关文章

导出报表前端写法(带搜索条件)

//导出报表 $('#exportStatement').click(function () { var exportUrl = ctxPath + 'supplierOperate/exportStatement'; var startTime = $('#startTime').val(); if(startTime == ''){ layer.alert("请选择开始时间"); return; } var endTime = $('#endTime').val(); if(end

Jfinal开发代码碎片_导出报表_配置druid数据源_使用guava

1.使用jfinal扩展包jfinal-ext-3.1.2.jar导出Excel报表,他需要依赖poi-3.12.jar jai包下载地址:http://files.cnblogs.com/files/zhougaojun/jfinal-ext_poi.zip 导出Excel方法: //导出Excel public void excel()throws Exception{ List<Record> list = Db.find("select * from activeaction

JasperReport导出报表8

我们已经看到在前面的章节中,如何打印和查看的JasperReport生成的文档.在这里,我们将看到如何在其他格式,如PDF,HTML和XLS转换或导出这些报告. Facade类net.sf.jasperreports.engine.JasperExportManager提供实现这一功能.导出方式转变JasperPrint对象(.jrprint文件)导入到不同的格式. 下面的代码(JasperReportExport.java)演示了JasperReport文档的导出过程.该JasperExpor

导出报表excel

/* +---------------------------------------------------------------------- | introduce:数据导出excel +---------------------------------------------------------------------- | @param $config 表头,文件名等相关配置信息 +-------------------------------------------------

利用ZABBIX进行服务器自动巡检并导出报表

实现思路 主要是利用zabbix的api来对数据进行获取处理,实现思路如下: zabbix提供了丰富的api,可以根据此api获取zabbix得主机信息,监控项ID,监控项的趋势数据和历史数据 首先根据主机组ID获取组内的所有主机信息,包括主机名和IP地址 循环主机组内的主机ID,并在循环里再嵌套一个根据监控项键值获取监控项ID的请求 根据获取到的监控项ID分别获取历史数据和趋势数据 将历史数据和趋势数据的值写到一个字典里,并把循环之后的所有字典添加到列表中 将列表中的信息写入到Excel中,把

从数据库中导出excel报表

通常需要将后台数据库中的数据集或者是其他列表等导出excel 报表,这里主要引用了Apose.cells dll 类库, (1)直接上主要代码: protected void txtExport_Click(object sender, EventArgs e)         { try             { // 获取测试商品报表 IList<ProductEntity> pList = ProductBLL.getProductList(); // 导出到Excel中 Workbo

用jxl导出excel报表

1.在项目中加入jxl.jar包 2.页面是一个from表单,也可以是一个a标签...,示例如下 1 <s:form action="claimVoucherStatistics_createDetailExcel.action" name="queryForm"> 2 <label for="time">年份:</label> 3 <s:property value="year"/&

Atitit.导出excel报表的设计与实现java&#160;.net&#160;php&#160;总结

Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1.3. 支持http web直接输出1 2. Api2 2.1. private static void toExcel(String titles, String filds,List<Map> list,OutputStream outStrm)2 2.2. Response版 toExcel

Java报表工具FineReport导出EXCEL的四种API

在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出时会默认时分多个sheet,而excel2007不会出现这样的问题.这些导出方式在JAVA程序中分别有不同的接口来实现:   1.原样导出 原样导出就是不预览直接导出excel 其程序接口代码如下:  outputStream = new FileOutputStream(new File("E:\