public class ExportExcel {
private static ExportExcel exportExcel = new ExportExcel();;
private ExportExcel() {
}
public static ExportExcel getInstance() {
return exportExcel;
}
/**
* 通过一个List<String[]>和String[]和sheetName以及路径path导出一个.xls的excel文件 返回导出的情况。
*
* @param list
* List<Object>就是传入一个从数据库查出的List信息
* @param head
* head这是传入一个数组,这个数组是每列的列名
* @param sheetName
* @return
*/
public static boolean exportToExcel(String path, ArrayList list,
String[] head, String sheetName, String tableName) {
boolean falg = true;
String folder = path + File.separator;
File f = new File(folder);
if (!f.exists()) {
f.mkdirs();
}
WritableWorkbook wwb = null;
try {
File excel = new File(folder + tableName + ".xls");
if (excel.exists()) {
excel.delete();
}
wwb = Workbook.createWorkbook(excel);
WritableSheet sheet = wwb.createSheet(sheetName, 0);
makeSheet(sheet, list, head);
wwb.write();
} catch (Exception e) {
falg = false;
e.printStackTrace();
} finally {
try {
if (wwb != null) {
wwb.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return falg;
}
/**
* 通过一个List<String[]>和String[] 打造一个WritableSheet
*
*/
public static WritableSheet makeSheet(WritableSheet sheet,ArrayList list, String[] head) throws RowsExceededException,
WriteException {
for (int i = 0; i < head.length; i++) {
Label labelHead = new Label(i, 0, head[i]);
sheet.addCell(labelHead);
}
// if(list==null){System.out.println("集合为空");}
for (int j = 0; j < list.size(); j++) {
Object[] obj = (Object[]) list.get(j);
for (int k = 0; k < obj.length; k++) {
String s = obj[k] + "";
sheet.addCell(new Label(k, j + 1, s));
}
}
return sheet;
}
public static void writeToClient(HttpServletResponse response, String path)
throws IOException {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
InputStream fis = null;
OutputStream fos = response.getOutputStream();
File uploadFile = new File(path);
fis = new FileInputStream(uploadFile);
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
// 弹出下载对话框的关键代码
response.setHeader("Content-disposition", "attachment;filename="
+ URLEncoder.encode(path, "utf-8"));
int bytesRead = 0;
// 输入流进行先读,然后用输出流去写
byte[] buffer = new byte[8192];
while ((bytesRead = bis.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.flush();
fis.close();
bis.close();
fos.close();
}
}
===============后台调用方法-==============
StreamResponse onSubmitFromExportExcelForm(){
String[] head = new String[]{"序号","车牌号","门限车度","实际车速"};
String floder=message.get("excelSavePath")+File.separator+DateUtil.dateFormat(Calendar.getInstance().getTime());
String tablename="zhang"+Calendar.getInstance().getTimeInMillis();
ExportExcel.exportToExcel(floder, overSpeedDataToExcelList, head, "超速报警数据列表",tablename);
String filename=tablename+".xls";
return new MyExcelStreamResponse(floder,filename);
}
=============创建一个类========
public class MyExcelStreamResponse implements StreamResponse{
private String filename;
private String floder;
public MyExcelStreamResponse(String floder,String filename){
this.floder=floder;
this.filename=filename;
}
public String getContentType(){
return "application/vnd.ms-excel";
}
public InputStream getStream(){
try {
return new BufferedInputStream(new FileInputStream(floder+File.separator+filename));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
public void prepareResponse(Response response){
response.setHeader("Content-disposition","attachment;filename="+ filename );
}
}
===================还需要指定保存位置==========
建立一个属性文件:*.properties ,放入Excel保存路径 excelSavePath=D:\\excel\\yyyy
这就是Excel的数据导出功能
分享到:
相关推荐
总结起来,这个项目通过`jxls2`库提供了一种高效、灵活的Excel报表导出解决方案,支持单元格合并和复杂的模板设计,能够满足多样化的需求,对于提升企业级应用的数据处理能力有着显著的作用。开发者只需花费较少的...
总结来说,Elasticsearch数据导出工具是一个强大的数据迁移工具,它通过Java实现了与MySQL的无缝连接,允许用户灵活地在Elasticsearch和MySQL之间移动数据,同时也支持将数据保存在本地文件系统,以适应多样化的数据...
然而,随着业务需求的多样化,简单的预设报表往往无法满足所有场景,这就催生了对“个性化定制Excel报表数据导出工具”的需求。本文将深入探讨这一工具的实现原理、应用场景及其实现方式。 首先,我们来理解这个...
综上所述,Java结合iText库可以方便地将数据转化为结构化的PDF文档,利用`PdfWriter`、`Paragraph`、`Font`等工具,以及可能的自定义封装,提高生成PDF的效率和灵活性。同时,通过Apache POI库,可以处理Excel文件,...
总结来说,帆软报表的导出功能强大且多样,不仅支持Excel、Word、PDF等常见格式,还提供了数据源配置和自动化推送等辅助工具,为企业数据管理和决策支持提供了便捷的解决方案。通过熟练掌握这些知识,用户可以更加...
首先,Excel的注解方式导入导出是一种高效且灵活的数据处理手段,它通过Java编程语言,利用Apache POI库或其他类似的库,如JExcelAPI,对Excel文件进行操作。这种方式通常涉及创建数据模型类,并在模型类的字段上...
在提供的文件名列表中,“BaseExportExcel.txt”可能包含基础的Excel导出逻辑,“反射工具定义类.txt”可能涉及使用Java反射机制动态处理数据,这在处理多样化的数据源时非常有用。“用POI把数据导出为Excel.txt”...
3. 文件自动化处理:使用Java可以自动处理大量的Excel文件,例如批量修改文件名、批量导出数据等。 Java操作Excel文件的技术难点: 1. Excel文件格式:Excel文件有多种格式,例如xls、xlsx等,每种格式都有其特点...
总结起来,大数据快速导出到Excel的Java实现主要依赖于低内存消耗的库,如Apache POI的SXSSFWorkbook,配合有效的数据处理和转换策略。通过这样的方式,即使面对百万级的数据,也能在5秒内完成导出,且对内存资源的...
总结,Apache POI 提供了强大且灵活的 API 来处理 Excel 文件,无论是在导入数据进行分析,还是导出报表,都能满足多样化的需求。在实际开发中,可以根据项目需求选择合适的 API,注意性能优化,避免内存溢出等问题...
JasperReport是一款强大的开源报表工具,它允许开发者创建复杂、美观的报表,并能与各种应用程序集成,...通过学习和掌握这两者,你将能够提升你的Java应用程序的报表处理能力,为用户提供更专业、多样的数据展现方式。
### 文件下载:使用POI导出Excel文档 在日常工作中,我们经常需要处理大量数据,并将其以Excel格式导出供用户...此外,还可以进一步扩展该功能,例如增加样式设置、复杂数据处理等功能,以适应更多样化的业务需求。
总之,结合iReport的报表设计能力和SpringMVC的Web应用处理能力,我们可以方便地实现在Web应用中导出报表为PDF和Excel的功能,满足用户对数据的多样化需求。这一过程涉及到的技术和细节较多,需要开发者具备扎实的...
这个“完美版”可能包含了优化的性能、多样化的样式以及完善的错误处理机制,确保了用户在导出大量数据时的稳定性和效率。在实际项目中,可以根据需求进一步定制,如支持多sheet、自定义模板等高级功能。学习并掌握...
随着业务需求的多样化和技术的发展,能够灵活处理各种数据格式的技术变得越来越受欢迎。其中,Excel作为最常用的表格处理工具之一,其在数据展示和分析中的应用极为广泛。对于Java开发者而言,Apache POI库提供了...
**jxls导入导出**是Java开发中处理Excel数据与数据库交互的一种技术,它基于Apache POI库,提供了方便快捷的方式来导入Excel数据到数据库以及从数据库导出数据到Excel文件。这种技术尤其适用于批量处理数据或者创建...
本文将详细探讨基于给定的标题“地址拆分软件+源码”及其描述中的知识点,主要涉及地址解析、数据处理和Excel导出。 首先,地址拆分是将一个完整的地址分解成各个组成部分的过程,如区、镇、路、弄(巷或小区)、号...
在这个主题中,我们将深入探讨JasperReports、iReport以及JFreeChart这三款组件如何协同工作来实现报表的多样化导出。 首先,JasperReports是Java平台上的一个报告库,它允许开发者设计复杂的报表,并以多种格式...
总之,JXL报表制作工具是Java开发者在处理Excel任务时的强大助手,通过掌握其核心功能和使用技巧,可以有效地提高工作效率,满足多样化的需求。在实际项目中,结合合理的编程实践和错误处理机制,可以充分发挥JXL的...
不仅如此,Exceljar还提供了对样式、公式、图表等复杂元素的支持,满足了多样化的Excel处理需求。 在使用Exceljar进行CRUD操作时,首先要将其添加为项目的依赖。这通常通过Maven或Gradle等构建工具来完成,将对应的...