- 浏览: 53920 次
- 性别:
- 来自: 北京
最新评论
-
alvin198761:
楼主如何调价图标呢
自定义带关闭按钮的TabbedPane -
carlkkx:
Disney2002 写道carlkkx 写道生成PDF,然后 ...
关于JTable的打印讨论 -
Disney2002:
carlkkx 写道生成PDF,然后打开PDF阅读器,然后用户 ...
关于JTable的打印讨论 -
carlkkx:
生成PDF,然后打开PDF阅读器,然后用户爱怎么打印怎么打印。 ...
关于JTable的打印讨论 -
Disney2002:
Disney2002 写道现在遇到一个问题,如果报表模板列不定 ...
JasperReport 个人使用的一些经验
package demo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; public class ExcelExporter { private static JFileChooser fc; public ExcelExporter() { } //硬写,格式类似不是很严格,简单应用可以 public void exportTable(JTable table, File file) throws IOException { TableModel model = table.getModel(); FileWriter out = new FileWriter(file); for (int i = 0; i < model.getColumnCount(); i++) { out.write(model.getColumnName(i) + "\t"); } out.write("\n"); for (int i = 0; i < model.getRowCount(); i++) { for (int j = 0; j < model.getColumnCount(); j++) { out.write(model.getValueAt(i, j).toString() + "\t"); } out.write("\n"); } out.write("\n"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); out.write("创建时间" + "\t" + format.format(date) + "\t"); out.close(); System.out.println("write out to: " + file); } // 通过POI写,用于较复杂的应用 public void exportToExcel(JTable table, File file) throws IOException { TableModel model = table.getModel(); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("统计信息"); // 创建表格头 HSSFRow row = sheet.createRow((short) 0); HSSFCellStyle headStyle = wb.createCellStyle(); headStyle.setFillForegroundColor(HSSFColor.GREY_50_PERCENT.index); //添加前景色,内容看的清楚 headStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); headStyle.setIndention((short) 10); HSSFFont font = wb.createFont(); font.setColor(HSSFColor.BLUE.index); headStyle.setFont(font); for (int i = 0; i < model.getColumnCount(); i++) { HSSFCell cell = row.createCell((short) i); cell.setCellStyle(headStyle); cell.setCellValue(new HSSFRichTextString((model.getColumnName(i)))); } // 插入表格数据 for (int i = 0; i < model.getRowCount(); i++) { HSSFRow dataRow = sheet.createRow((short) i + 1); for (int j = 0; j < model.getColumnCount(); j++) { dataRow.createCell((short) j).setCellValue( new HSSFRichTextString(model.getValueAt(i, j) .toString())); } } // 插入创建时间 HSSFRow insertTime = sheet.createRow((short) model.getRowCount() + 3); insertTime.createCell((short) 0).setCellValue( new HSSFRichTextString("创建时间")); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); insertTime.createCell((short) 1).setCellValue( new HSSFRichTextString(format.format(date))); // 根据内容长度自动调整excel列宽 for(int i=0;i<model.getColumnCount();i++){ sheet.autoSizeColumn((short) i); } FileOutputStream fileOut = null; try { fileOut = new FileOutputStream(file.getAbsolutePath()); wb.write(fileOut); fileOut.close(); } catch (IOException e) { file.deleteOnExit(); wb.write(fileOut); fileOut.close(); e.printStackTrace(); } } public static void main(String[] args) { String[][] data = { { "Housewares", "$1275.00" }, { "Pets", "$125.00" }, { "Electronics", "$2533.00" }, { "Mensware", "$497.00" } }; String[] headers = { "Department", "Daily Revenue" }; final JFrame frame = new JFrame("JTable to Excel Hack"); DefaultTableModel model = new DefaultTableModel(data, headers); final JTable table = new JTable(model); JScrollPane scroll = new JScrollPane(table); JButton export = new JButton("Export"); fc = new JFileChooser(); export.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try { fc.addChoosableFileFilter(new ExcelFileFilter()); fc.setAcceptAllFileFilterUsed(false); int returnVal = fc.showSaveDialog(frame); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); ; String ext = ExcelFileFilter.getExtension(file); ExcelExporter exp = new ExcelExporter(); if (ext != null) { if ((!ext.equals(ExcelFileFilter.xls)) || (!ext.equals(ExcelFileFilter.XLS))) { int i = file.getName().lastIndexOf("."); String fileName = file.getName() .substring(0, i); File newfile = new File(fc .getCurrentDirectory() .getAbsolutePath() + "\\" + fileName + ExcelFileFilter.suffix); exp.exportToExcel(table, newfile); return; } } else { File newfile = new File(fc.getCurrentDirectory() .getAbsolutePath() + "\\" + file.getName() + ExcelFileFilter.suffix); exp.exportToExcel(table, newfile); return; } } else { } } catch (IOException ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); } } }); frame.getContentPane().add("Center", scroll); frame.getContentPane().add("South", export); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } 外加一个Filter,直接保存为Excel格式,不支持office2007格式/** * */ package demo; import java.io.File; import javax.swing.filechooser.FileFilter; /** * @author XiaoQuan * */ public class ExcelFileFilter extends FileFilter { public final static String xls = "xls"; public final static String XLS = "XLS"; public final static String suffix = ".xls"; public boolean accept(File file) { if (file.isDirectory()) { return true; } String extension = getExtension(file); if (extension != null) { if (extension.equals(ExcelFileFilter.xls) || extension.equals(ExcelFileFilter.XLS)) { return true; } else { return false; } } return false; } public String getDescription() { return "保存为EXCEL"; } public static String getExtension(File f) { String ext = null; String s = f.getName(); int i = s.lastIndexOf('.'); if (i > 0 && i < s.length() - 1) { ext = s.substring(i + 1).toLowerCase(); } return ext; } }
评论
2 楼
pipihu_yu
2008-08-15
HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. It does not support the new Excel 2007 .xlsx OOXML file format, which is not OLE2 based.
POI可以到[url] http://www.apache.org/dyn/closer.cgi/jakarta/poi/[/url] 下载。 编译好的jar主要有这样4个:poi包,poi Browser包,poi hdf包,poi hssf例程包。
POI可以到[url] http://www.apache.org/dyn/closer.cgi/jakarta/poi/[/url] 下载。 编译好的jar主要有这样4个:poi包,poi Browser包,poi hdf包,poi hssf例程包。
1 楼
pipihu_yu
2008-08-15
org.apache.poi.*包找不到哟!请问一下这是什么包呢?
发表评论
-
关于JTable的打印讨论
2009-11-10 15:59 2127Java中用Table显示数据是再正常不过的了,有各种各样的T ... -
JFreechart使用技巧
2009-07-27 18:50 10221.自定义纵轴的数值显示位数 Number ... -
再遇 java.util.ConcurrentModificationException
2009-07-22 11:07 2886今天又一次遇到java.util.ConcurrentModi ... -
Java对象的浅拷贝和深拷贝
2009-07-21 22:45 2356首先介绍变量拷贝,变量拷贝时,原始变量和拷贝的新变量引用同一个 ... -
JasperReport 个人使用的一些经验
2009-07-20 14:59 8777本文主要介绍下我在工作中使用JasperReport的一些经验 ... -
Swing Table上的常用技巧
2009-07-14 15:45 36141、自定义列宽 TableColumnModel col ... -
C3P0 导致 Tomcat无法关闭?
2008-11-14 14:58 3577----请版主手下留情啊,这个问题目前搜索不到,要是能搜索到也 ... -
远程访问Tomcat的JMX
2008-10-20 16:02 2406Tomcat的JMX支持默认应该是关闭的,首先我们得打开Tom ... -
用Java动态代理实现AOP
2008-08-23 22:42 1081AOP主要应用于日志记录 ... -
共享下JFreeChart的Developer.Guide v1.0.9
2008-06-29 22:15 1399JFreeChart 的Developer.Guide 不好找 ... -
No configuration found for the specified action
2008-06-20 18:53 2778用惯了Struts1.1的朋友,在用struts2时可能会出现 ... -
List 分页封装及结合Struts2使用
2008-06-18 22:06 25731. 核心类: import java.util.Arra ... -
关于JCS
2008-06-18 21:22 1178关于JCS «‹›» JCS是Jaka ... -
自定义带关闭按钮的TabbedPane
2008-06-13 14:32 3467package test; import javax ... -
转载:session介绍
2008-06-01 00:07 1345摘要: 虽然session机制在web应用程序中被采用已经很长 ...
相关推荐
Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件Java生成excel文件
总之,Java生成Excel文件是通过Apache POI库实现的,它提供了丰富的API来创建、读取和修改Excel文件。通过学习和实践,我们可以熟练地运用这些工具,满足各种场景下的需求。对于初学者,可以从简单的例子开始,逐步...
"Java生成Excel图表" Java生成Excel图表是使用Java语言来生成Excel图表的过程。Excel图表是指使用Excel软件生成的图表,例如柱状图、折线图、饼状图等。Java语言可以使用各种库和框架来生成Excel图表,例如...
通过以上步骤,你就可以利用Java POI库根据Excel模板生成新的Excel文件了。这个过程可以用于批量生成报告、自定义报表或者动态数据填充等场景,大大提高了工作效率。同时,POI库提供了丰富的API,可以根据具体需求...
在`StreamDemo_13.java`这个示例文件中,可能就包含了上述部分或全部步骤,演示了如何使用Java生成Excel文件的具体实现。配合`Java.jpg`这个图片文件,可能是为了说明如何在Excel中插入图片。 总之,通过Apache POI...
在java开发中,通过jxl.jar提供的api可以方便的生成你想要的excel文件。
Java 生成 Excel 文件并下载 Java 生成 Excel 文件是指使用 Java 语言生成 Excel 文件的过程。Excel 文件是一种常用的电子表格文件格式,广泛应用于数据存储和分析。在 Java 中,可以使用 Apache POI 库来生成 ...
利用Java生成Excel文件是一项常见的需求,特别是在数据处理和报表生成的场景中。Apache POI是一个强大的库,专门用于处理Microsoft Office格式的文件,包括Excel。本文将详细介绍如何使用Java和POI库生成Excel文件,...
利用jxl包结合java反射机制和注释,直接把list生成对应的Excel文件,即只需传入list、对应生成的对象、标题就可以生成excel文件write(String title, List list,Class c),实现一个简单生成excel工具类
生成Excel文件后,下一步是提供下载服务。这通常在Web应用程序中完成,例如基于Spring Boot的项目。我们需要创建一个Controller方法,返回一个`StreamingResponseBody`,通过HTTP响应将Excel文件发送到客户端: ```...
在Java编程中,生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据导出等场景。本篇文章将深入探讨如何使用Java代码来创建Excel文件,以满足上述需求。 首先,我们需要一个库来帮助我们处理Excel...
在Java编程中,读取Excel文件并生成矩阵是一项常见的任务,尤其在数据分析、报表处理或者数据导入导出的场景下。Excel文件通常用于存储结构化的表格数据,而矩阵则是一种有效的数据表示方式,便于计算和分析。下面...
总的来说,Java配合`jxl`库可以方便地实现Excel文件的创建和数据写入,这对于数据导出、报告生成等场景非常实用。然而,需要注意的是,`jxl`库只支持旧版的.BIFF8格式(Excel 97-2003),对于新版的.xlsx格式(Excel...
生成Excel报表时,你需要先创建一个Workbook对象,它是Excel文件的基础结构。 1. **创建Workbook对象**: - 对于.xlsx文件,可以使用`XSSFWorkbook()`构造函数创建`XSSFWorkbook`对象。 - 对于.xls文件,可以使用...
在本示例中,我们关注的是如何利用Java POI来根据模板生成.xlsx格式的Excel文件。这个过程涉及到对Excel模板的理解、读取、修改以及最终的保存。 首先,理解模板文件是关键。一个.xlsx模板文件实际上是由一系列XML...
java实现生成Excel(.xls)文件程序,并封装了从浏览器下载的方法,压缩包内含有使用说明,希望大神们指教,互相学习
生成excel并上传到S3.不需要真正的生成excel文件,只需要拿到byte
总结,Java生成Excel报表的过程涉及到文件I/O操作、使用第三方库(如JExcelApi)、创建和操作工作簿和工作表对象、设置单元格内容和样式等技术。通过熟练掌握这些知识点,你就能高效地在Java程序中生成各种复杂的...
Java编程调用PageOffice实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...