Java导出Excel和CSV(简单Demo)

摘要:
Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV。

Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV。

JavaBean

Java导出Excel和CSV(简单Demo)第1张Java导出Excel和CSV(简单Demo)第2张
1 public classReportInfo {
2     
3     intid;              
4 String date; 
5     intnum;         
6     intpercent;      
7     
8     public intgetId() {
9         returnid;
10 }
11     public void setId(intid) {
12         this.id =id;
13 }
14     publicString getDate() {
15         returndate;
16 }
17     public voidsetDate(String date) {
18         this.date =date;
19 }
20     public intgetNum() {
21         returnnum;
22 }
23     public void setNum(intnum) {
24         this.num =num;
25 }
26     public intgetPercent() {
27         returnpercent;
28 }
29     public void setPercent(intpercent) {
30         this.percent =percent;
31 }
32     
33 }
View Code

工具类的简单实现

Java导出Excel和CSV(简单Demo)第3张Java导出Excel和CSV(简单Demo)第4张
public classExportUtil {

    public static void main(String[] args) throwsFileNotFoundException, IOException{
        
        List<ReportInfo> list = new ArrayList<ReportInfo>();
        createData(list);
        exportCSV(list, "/tmp/report.csv");
        exportExcel(list, "/tmp/report.xls");
    }
    
    public static void exportCSV(List<ReportInfo> list, String filePath) throwsIOException{
        File file = newFile(filePath);
        if(file.exists())
            file.delete();
        CsvWriter wr = new CsvWriter(filePath, ',', Charset.forName("UTF-8"));
        String[] contents = {"No", "date", "num", "percent"};
        wr.writeRecord(contents);
        ReportInfo info = newReportInfo();
        for(int i = 0; i < list.size(); i++){
            info =list.get(i);
            contents[0] =String.valueOf(info.getId());
            contents[1] =info.getDate();
            contents[2] =String.valueOf(info.getNum());
            contents[3] = info.getPercent() + "%";
            wr.writeRecord(contents);
        }
        wr.close();
    }
    
    public static void exportExcel(List<ReportInfo> list, String filePath) throwsIOException{
        
        File file = new File(filePath);//"/tmp/tmpfiles/workbook.xls"
        if(file.exists())
            file.delete();
        FileOutputStream fileOut = new FileOutputStream(filePath);//创建excel表格//"/tmp/tmpfiles/workbook.xls"
        Workbook wb = new HSSFWorkbook();//获取workbook
        //FileOutputStream fileOut = new FileOutputStream("workbook.xls");
        HSSFSheet sheet = (HSSFSheet) wb.createSheet("report");//生成一个表格
sheet.setColumnWidth(1, 4000);
        
        HSSFRow row = sheet.createRow((short)0);//创建行并插入表头
        row.createCell(0).setCellValue("No");
        row.createCell(1).setCellValue("date");
        row.createCell(2).setCellValue("num");
        row.createCell(3).setCellValue("percent");
         
        ReportInfo info = newReportInfo();
        for(int i = 1; i <= list.size(); i++){//循环插入数据
            info = list.get(i-1);
            row =sheet.createRow(i);
            row.createCell(0).setCellValue(info.getId());
            row.createCell(1).setCellValue(info.getDate());
            row.createCell(2).setCellValue(info.getNum());
            row.createCell(3).setCellValue(info.getPercent()+"%");
        }
        
        wb.write(fileOut);
        fileOut.close();
    }
    
    public static void createData(List<ReportInfo>list){
        ReportInfo tp = newReportInfo();
        tp.setId(1);
        tp.setNum(2);
        tp.setPercent(50);
        tp.setDate("2013-08-20");
        list.add(tp);
    }
    
}
View Code

后来看到xwdreamer一篇文章,使用了Java的泛型和反射将JavaBean的属性依次填充到Excel行中,如能自由指定JavaBean的属性所在列效果更好。

POI的官方快速入门示例:http://poi.apache.org/spreadsheet/quick-guide.html

免责声明:文章转载自《Java导出Excel和CSV(简单Demo)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【4】计算神经网络的输出Qt界面美化 QSS下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jmeter中如何使用csv文件并读取数据

我现在要测试一个新的网站,需要负载测试这个功能“加入购物车”。要做到 这一点,我需要模拟多个用户登录并进行购物操作,具体的场景为每一个人将同样的物品加入到购物车。 JMeter 处理这些请求完全没有问题,但是模拟不同的用户, 需要不同的用户名和 密码, 并不是那么容易。 所以我们需要将一组组的用户名,密码信息保存到csv文件中。 那么jmeter读取一组用...

关于2000W数据

前几天在博客园首页看到这个2000W数据的消息,刚好这个学期正在SQL入门,加上好奇心的驱使,把这个下载下来。 一个是600多M的CSV文件,还有一个是1.7G的SQL Server的备份文件,解压后都接近8G了,试着在sql server2000上导入一下,貌似直接就说太多了……汗 所以,只好先看看这个CSV文件了,这个解压后也接近2G了,一般的文本编辑器...

(转载)CSV 文件处理 PERL

http://cn.perlmaven.com/how-to-read-a-csv-file-using-perl http://search.cpan.org/~hmbrand/Text-CSV_XS-1.09/CSV_XS.pm 读取并处理文本是 Perl 的强项。有时候你有一个CSV (Comma-separated values)文件,需要从...

Jmeter 运行结果的csv文件生成报告

把运行结果保存到本地,下次可以直接用结果生成测试报告。 一、首先保证脚本能正常运行 二、本地创建csv文件,用来保存运行结果 三、察看结果树,选择本地文件(上一步创建好的csv文件),保存运行结果,如下图 四、结果CSV文件生成报告 1、选择生成报告入口,如下图 2、生成报告,步骤如下图 3、查看报告,如下图...

python csv文件打开错误:_csv.Error: line contains NULL byte

正常的csv文件读取如下: #coding:utf-8 importcsv csvfilename = 'demo.csv' print u'################获取某一行'with open(csvfilename, 'rb') as csvfile: reader =csv.reader(csvfile) rows =...

导出CSV 换行问题。

程序方面: 1.Windows 中的换行符" " 2.Unix/Linux 平台换行符是 " "。 3.MessageBox.Show() 的换行符为 " " 4.Console 的换行符为 " " 为保持平台的通用性,可以用系统默认换行符 System.Environment.NewLine。 sql server:换行 select subscribe...