浅谈JAVA读写Excel的几种途径

浅谈JAVA读写Excel的几种途径,第1张

需要对Excel中的数据进行读取 *** 作。一、在开始进行Java读写Excel前,需要先下一个jxl的jar包,这个jar包中提供了相关读写Excel的方法,将jxl.jar放到classpath下或者在工程的buildpath中添加jxl.jar后,便可以开始Java读写Excel了。二、Java读取Excel数据,首先,创建一个xls文件(如:jxltest.xls),然后在文件中添加一些数据,Excel文件创建完成后,便可以开始写代码读取了。三、进行一个小小的扩展,读取一个目录下的所有Excel文件,读取的每个Excel文件的数据写入到不同的txt中。四、生成EXCEL需要手动写查询语句把ORACLE数据库中的数据查询出来,再通过 *** 作写到EXCEL文件里面。通过EXCEL把数据读取到ORACLE,同样需要去读取EXCEL工作薄里面的内容,再通过INSERT语句去插入数据库 *** 作。

你是刚开始把excel的流读取的时候就内存溢出了吗?我建议如果内存吃紧

增加jvm启动内存

程序中及时释放内存,比如,excel中读取一行后,就把这一行保存到数据库,然后java内设置为null,让GC释放内存。然后一些list之类的,不用了也clear+setNull掉

excel7万数据的话,应该几百M内存就够了,不算过分

使用java poi

package webservice

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

import org.apache.poi.hssf.usermodel.HSSFCell

import org.apache.poi.hssf.usermodel.HSSFRow

import org.apache.poi.hssf.usermodel.HSSFSheet

import org.apache.poi.hssf.usermodel.HSSFWorkbook

public class ExcelController {

@SuppressWarnings("deprecation")

public void excel() throws FileNotFoundException, IOException{

String filename = "d:\\excel.xls"

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename))

//按名引用excel工作表

//HSSFSheet sheet = workbook.getSheet("JSP")

//也可以用以下方式来获取excel的工作表,采用工作表的索引值

HSSFSheet sheet = workbook.getSheetAt(0)

HSSFRow row

HSSFCell cell1

int rows=sheet.getLastRowNum()

for(int icount=0icount<rowsicount++){

row = sheet.getRow(icount)

int line=row.getPhysicalNumberOfCells()

for(int j=0j<linej++){

cell1= row.getCell(j)

System.out.println(cell1+"--"+icount+"---"+j)

}

}

//打印读取值

//System.out.println(cell.getStringCellValue())

//新建一输出流

FileOutputStream fout = new FileOutputStream(filename) //PS:filename 是你另存为的路径,不处理直接写入模版文件

//存盘

workbook.write(fout)

fout.flush()

//结束关闭

fout.close()

}

public HSSFCell getCell(HSSFRow row, int index) {

// 取得分发日期单元格

HSSFCell cell = row.getCell(index)

// 如果单元格不存在

if (cell == null) {

// 创建单元格

cell = row.createCell(index)

}

// 返回单元格

return cell

}

public static void main(String[] args) {

ExcelController ec = new ExcelController()

try {

ec.excel()

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6848381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存