`
刘小小尘
  • 浏览: 65980 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java写excel

 
阅读更多

废话不说,直接上代码

package com.pzoom.xiaochen.excel;

import java.io.OutputStream;
import java.util.ArrayList;
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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;

public class ExcelFileGenerator {

    private final int SPLIT_COUNT = 15; //Excel每个工作表的行数

    private ArrayList fieldName = null; //excel数据的抬头栏,即名称栏

    private ArrayList fieldData = null; //excel导出的实际数据

    private HSSFWorkbook workBook = null;//一个excel文件

    //有参构造器,限定了使用此类时,必须首先构建好两个list参数,并将所需数据放入上述两个list。
    //其中fieldName这个list可以使用泛型约束List<String>
    //fieldData这个可以使用泛型约束List<List<Object>>
    public ExcelFileGenerator(ArrayList fieldName, ArrayList fieldData) {
        this.fieldName = fieldName;
        this.fieldData = fieldData;
    }
    /**
     * @return HSSFWorkbook
     */
    public HSSFWorkbook createWorkbook() {
        workBook = new HSSFWorkbook();//创建一个工作簿
        int rows = fieldData.size();//清点出输入数据的行数
        int sheetNum = 0;//将工作表个数清零
        //根据数据的行数与每个工作表所能容纳的行数,求出需要创建工作表的个数
        if (rows % SPLIT_COUNT == 0) {
            sheetNum = rows / SPLIT_COUNT;
        } else {
            sheetNum = rows / SPLIT_COUNT + 1;
        }

        for (int i = 1; i <= sheetNum; i++) {
            HSSFSheet sheet = workBook.createSheet("Page " + i);//创建工作表
            HSSFRow headRow = sheet.createRow(0); //创建第一栏,抬头栏
            for (int j = 0; j < fieldName.size(); j++) {
                HSSFCell cell = headRow.createCell(j);//创建抬头栏单元格
                //设置单元格格式
                cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                sheet.setColumnWidth(j, 6000);
                HSSFCellStyle style = workBook.createCellStyle();
                HSSFFont font = workBook.createFont();
                font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
                short color = HSSFColor.RED.index;
                font.setColor(color);
                style.setFont(font);
                //将数据填入单元格
                if(fieldName.get(j) != null){
                    cell.setCellStyle(style);
                    cell.setCellValue((String) fieldName.get(j));
                }else{
                    cell.setCellStyle(style);
                    cell.setCellValue("-");
                }
            }
            //创建数据栏单元格并填入数据
            for (int k = 0; k < (rows < SPLIT_COUNT ? rows : SPLIT_COUNT); k++) {
                if (((i - 1) * SPLIT_COUNT + k) >= rows)
                    break;
                HSSFRow row = sheet.createRow(k + 1);
                ArrayList rowList = (ArrayList) fieldData.get((i - 1)
                        * SPLIT_COUNT + k);
                for (int n = 0; n < rowList.size(); n++) {
                    HSSFCell cell = row.createCell( n);
                    if(rowList.get(n) != null){
                        cell.setCellValue((String) rowList.get(n).toString());
                    }else{
                        cell.setCellValue("");
                    }
                }
            }
        }
        return workBook;
    }
    //将信息写入输出流的方法。
    public void exportExcel(OutputStream os) throws Exception {
        workBook = createWorkbook();
        workBook.write(os);
        os.close();
    }
}

测试类在下面

 @Test
    public void testExcel() throws Exception
    {
//        ExcelFileGenerator generator = new ExcelFileGenerator(new ArrayList<String>("1,2,3"),new ArrayList<String>("aa","bb","cc"),);
        ExcelFileGenerator generator = new ExcelFileGenerator(Lists.newArrayList("1","2","3"), Lists.newArrayList(Lists.newArrayList("aa","bb","cc"), Lists.newArrayList("dd","ee","ff")));
        generator.exportExcel(new FileOutputStream(new File("a.xls")));
    }

我用的guava库里的东西
分享到:
评论

相关推荐

    非常简洁的java读写EXCEL源代码

    Java编程语言在处理Excel文件时提供了多种库,其中之一就是JXL。这个库使得在Java中读写Excel文件变得相当直观和高效。标题“非常简洁的java读写EXCEL源代码”以及描述中提到的“非常简单,还赠送个JXL的包”都暗示...

    java 写excel 实例

    接下来,我们来看一个简单的Java写Excel文件的实例。这个实例将创建一个Excel文件,并填充一些数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import...

    java读写excel文件

    在Java编程中,读写Excel文件是一项常见的任务,特别是在数据处理、数据分析或报表生成的场景下。本篇文章将深入探讨如何使用Java进行Excel文件的读取与写入操作,主要聚焦于Apache POI库,这是一个广泛使用的开源...

    Java读写Excel(基于xxl-excel)

    Java读写Excel是一项常见的任务,尤其在数据处理和报表生成中。Xxl-Excel是一个流行的Java库,专门用于处理Excel文件,提供了简单易用的API,使得开发人员能够方便地进行Excel的读取和写入操作。在这个示例中,我们...

    java读写excel示例

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都可能用到这个功能。本示例主要介绍如何使用Java进行Excel文件的读写操作,涉及的关键技术包括Apache POI库和jar包...

    java 读写excel

    Java 读写Excel是开发过程中常见的一项任务,尤其在数据处理、报表生成或者数据分析等领域。在Java中,我们可以使用各种库来实现Excel的读写功能,例如Apache POI、JExcelAPI、OpenCSV等。本示例中可能使用的是...

    ExcelDemo_Excel导出_下载_POI读excel_JXL读写excel_java读写excel_列宽_读取合并或拆分单元格内容

    本文将深入探讨Java编程语言中如何使用Apache POI库和JExcelAPI(JXL)来读取、写入及操作Excel文件,同时也包括设置列宽以及处理合并或拆分的单元格内容。 首先,Apache POI是Apache软件基金会的一个开源项目,专...

    JAVA读写EXCEl下载直接用

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是读取数据进行分析,还是写入数据进行报表生成。本文将深入探讨如何使用Java进行Excel的读写操作,主要基于Apache POI库,这是一个强大的API,允许程序员...

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    java读写Excel,POI.JAR,Word内容读取

    java读写Excel,POI.JAR,Word内容读取

    java 写excel jar

    Java写Excel是一个常见的任务,特别是在数据处理和报告生成的场景中。为了在Java程序中创建Excel文件,开发者通常会利用第三方库,这些库被打包成JAR(Java Archive)文件,方便集成到Java项目中。本篇文章将深入...

    JAVA写Excel

    java将list数据写入指定文件名的excel文档中

    java读写Excel文件所需jar包

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都需要用到相关的库。在Java中,我们可以借助第三方库来实现Excel文件的读写操作。"java读写Excel文件所需jar包"这个...

    java读写excel的操作文档

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据分析等领域。Java Excel API (JExcelAPI) 是一个广泛使用的库,用于读取、创建和修改Microsoft Excel文件。在本篇中,我们将深入...

    flex+java读写excel文件

    本篇文章将深入探讨“flex+java读写excel文件”这一主题,基于提供的标签和压缩包子文件名称,我们将重点讲解Flex与Java如何协同工作来实现Excel文件的导入与导出功能。 Flex是一种开源的富互联网应用程序(RIA)...

    java读写excel2010

    自己封装的java读写excel2010的库,拿来直接用!操作更简单!样例请查看:http://blog.ijustyce.com/?post=359

    jcom 实现 java 写 Excel实例(包含jar包_dll文件_api)资料全

    本教程将详细介绍如何使用`jcom`来实现Java写Excel的实例,并涵盖关键知识点。 首先,`jcom`库利用Java的JNI(Java Native Interface)技术,通过调用Windows平台上的`dll`文件与Excel进行通信。在Java项目中,你...

    java 读写Excel组件

    在Java编程中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都可能需要用到。本文将深入探讨Java中用于读写Excel的组件,并提供相关的实践指导。 一、Apache POI库 Apache POI是...

    使用Java读写Excel文档

    ### 使用Java读写Excel文档的关键知识点 #### 一、引言 随着企业信息化程度的不断提高,Excel作为一种常用的数据处理工具,在日常工作中的应用越来越广泛。Java作为一款强大的编程语言,能够很好地与Excel进行交互...

Global site tag (gtag.js) - Google Analytics