Java生成excel,向excel追加数据(通用代码)

所需jar包下载地址: poi.jar→ http://download.csdn.net/download/cjava_math/9950387
jxl.jar→
package cn.sos.until;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.List;

import java.util.Map;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

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.poifs.filesystem.POIFSFileSystem;

/**

  • 数据写入excel工具类

  • @author lannan

*@map key:列头 value:数据

*/

public class ExcelFile {

//第一次写入



public static void createExcel(Map<String, Object>map,OutputStream os) throws WriteException,IOException{

	

	int n = 0;

	int m = 0;

    //创建工作薄

    WritableWorkbook workbook = Workbook.createWorkbook(os);

    

    //创建新的一页

    WritableSheet sheet = workbook.createSheet("First Sheet",0);

    

    

    //创建要显示的内容,创建一个单元格,第一个参数为列坐标,第二个参数为行坐标,第三个参数为内容

    

    for (String key : map.keySet()) {

    	Label dk = new Label(n,0,key);

    	sheet.addCell(dk);

    	n++;

    	

	}

    

    for (Object value : map.values()) {

    	Label dk = new Label(m,1,value.toString());

    	sheet.addCell(dk);

    	m++;

	}

    

    

    //把创建的内容写入到输出流中,并关闭输出流

    workbook.write();

    workbook.close();

    os.close();

}



//向excel中追加数据.@excelPath:excel所在路径,list:数据集合.(第2,3,4,5,6.....次写入

public static void addExcel(String excelPath,List<Object> list ) throws IOException{

	

	FileInputStream fs = new FileInputStream(excelPath);//获取excel

	

	POIFSFileSystem ps = new POIFSFileSystem(fs);//获取excel信息

	

	HSSFWorkbook wb = new HSSFWorkbook(ps);

	

	HSSFSheet sheet = wb.getSheetAt(0);//获取工作表

	

	HSSFRow row = sheet.getRow(0);//获取第一行(即:字段列头,便于赋值)

	

	System.out.println(sheet.getLastRowNum()+"空"+row.getLastCellNum());//分别得到最后一行行号,和一条记录的最后一个单元格

	

	FileOutputStream out = new FileOutputStream(excelPath);//向excel中添加数据

	

	row = sheet.createRow(sheet.getLastRowNum()+1);//在现有行号后追加数据

	

	for (int i = 0; i < list.size(); i++) {

		

		String str = String.valueOf(list.get(i));

		row.createCell(i).setCellValue(str);//设置单元格的数据

	}

	out.flush();

	wb.write(out);

	wb.close();

	

}

)

}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
使用Java的SXSSFWorkbook向Excel追加写入数据,可以采用以下步骤: 1. 创建SXSSFWorkbook对象,并打开Excel文件。可以使用以下代码: ```java FileOutputStream outputStream = new FileOutputStream("example.xlsx"); SXSSFWorkbook workbook = new SXSSFWorkbook(new XSSFWorkbook(), 100); ``` 其中,100表示每次写入100行数据后就将数据写入硬盘。 2. 获取SXSSFSheet对象,以便向其中写入数据。可以使用以下代码: ```java SXSSFSheet sheet = workbook.createSheet("Sheet1"); ``` 其中,"Sheet1"表示工作表的名称。 3. 创建SXSSFRow对象,并向其中添加单元格。可以使用以下代码: ```java SXSSFRow row = sheet.createRow(rowIndex++); SXSSFCell cell = row.createCell(cellIndex++); cell.setCellValue("Hello, World!"); ``` 其中,rowIndex表示行号,cellIndex表示列号,"Hello, World!"表示要写入的数据。 4. 将数据写入硬盘。可以使用以下代码: ```java if (rowIndex % 100 == 0) { ((SXSSFSheet) sheet).flushRows(); } ``` 其中,flushRows()方法将当前行数之前的所有行刷新到硬盘。 5. 关闭SXSSFWorkbook对象。可以使用以下代码: ```java workbook.write(outputStream); workbook.dispose(); outputStream.close(); ``` 其中,write(outputStream)方法将所有数据写入硬盘,dispose()方法释放所有资源,close()方法关闭输出流。 注意:使用SXSSFWorkbook对象时,需要将它包装在try-with-resources语句中,以确保它在使用完毕后能够被自动关闭。例如: ```java try (SXSSFWorkbook workbook = new SXSSFWorkbook(new XSSFWorkbook(), 100); FileOutputStream outputStream = new FileOutputStream("example.xlsx")) { // ... } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微一笑满城空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值