poi excel如何用java代码生成

作者&投稿:原贫 (若有异议请与网页底部的电邮联系)
如何用java代码生成一个大数据的excel文件?~

POI包解析 或者 只是xls的话 用 jxl 也行 poi 全支持 xls 和xlsx
然后写入 保存 ok

HSSFSheet sheet= null;
for(int sherrt= 0; sherrt <wr.getNumberOfSheets();sherrt++){
sheet = wr.getSheetAt(sherrt);// 获得sheet工作簿HSSFSheet
for(int i = 0 ; i<=sheet.getLastRowNum(); i++){
HSSFRow row = sheet.getRow(i);//获得行数
Iterator o = row.iterator(); //得到每行的值
int j= 0 ;
while(o.hasNext()){
if(!key){
kk = o.next().toString();
if(StrC.getSimilarityRatio(kk, Vle[j])>0.7){j++;}
}else{
GetVAR[j] = o.next().toString();
j++;
}
}
这个是得到 也可以写入

项目结构:

xls:


\\\

XlsMain .java 类
//该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版)

*



import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

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;


/**
*
* @author Hongten
*
* 参考地址:http://hao0610.iteye.com/blog/1160678
*
*/
public class XlsMain {

public static void main(String[] args) throws IOException {
XlsMain xlsMain = new XlsMain();
XlsDto xls = null;
List list = xlsMain.readXls();

try {
XlsDto2Excel.xlsDto2Excel(list);
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < list.size(); i++) {
xls = (XlsDto) list.get(i);
System.out.println(xls.getXh() + " " + xls.getXm() + " "
+ xls.getYxsmc() + " " + xls.getKcm() + " "
+ xls.getCj());
}

}

/**
* 读取xls文件内容
*
* @return List对象
* @throws IOException
* 输入/输出(i/o)异常
*/
private List readXls() throws IOException {
InputStream is = new FileInputStream("pldrxkxxmb.xls");
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
XlsDto xlsDto = null;
List list = new ArrayList();
// 循环工作表Sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 循环行Row
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow == null) {
continue;
}
xlsDto = new XlsDto();
// 循环列Cell
// 0学号 1姓名 2学院 3课程名 4 成绩
// for (int cellNum = 0; cellNum <=4; cellNum++) {
HSSFCell xh = hssfRow.getCell(0);
if (xh == null) {
continue;
}
xlsDto.setXh(getValue(xh));
HSSFCell xm = hssfRow.getCell(1);
if (xm == null) {
continue;
}
xlsDto.setXm(getValue(xm));
HSSFCell yxsmc = hssfRow.getCell(2);
if (yxsmc == null) {
continue;
}
xlsDto.setYxsmc(getValue(yxsmc));
HSSFCell kcm = hssfRow.getCell(3);
if (kcm == null) {
continue;
}
xlsDto.setKcm(getValue(kcm));
HSSFCell cj = hssfRow.getCell(4);
if (cj == null) {
continue;
}
xlsDto.setCj(Float.parseFloat(getValue(cj)));
list.add(xlsDto);
}
}
return list;
}

/**
* 得到Excel表中的值
*
* @param hssfCell
* Excel中的每一个格子
* @return Excel中每一个格子中的值
*/
@SuppressWarnings("static-access")
private String getValue(HSSFCell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
// 返回布尔类型的值
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
// 返回数值类型的值
return String.valueOf(hssfCell.getNumericCellValue());
} else {
// 返回字符串类型的值
return String.valueOf(hssfCell.getStringCellValue());
}
}

}





XlsDto2Excel.java类
//该类主要负责向Excel(2003版)中插入数据

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
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;


public class XlsDto2Excel {

/**
*
* @param xls
* XlsDto实体类的一个对象
* @throws Exception
* 在导入Excel的过程中抛出异常
*/
public static void xlsDto2Excel(List xls) throws Exception {
// 获取总列数
int CountColumnNum = xls.size();
// 创建Excel文档
HSSFWorkbook hwb = new HSSFWorkbook();
XlsDto xlsDto = null;
// sheet 对应一个工作页
HSSFSheet sheet = hwb.createSheet("pldrxkxxmb");
HSSFRow firstrow = sheet.createRow(0); // 下标为0的行开始
HSSFCell[] firstcell = new HSSFCell[CountColumnNum];
String[] names = new String[CountColumnNum];
names[0] = "学号";
names[1] = "姓名";
names[2] = "学院";
names[3] = "课程名";
names[4] = "成绩";
for (int j = 0; j < CountColumnNum; j++) {
firstcell[j] = firstrow.createCell(j);
firstcell[j].setCellValue(new HSSFRichTextString(names[j]));
}
for (int i = 0; i < xls.size(); i++) {
// 创建一行
HSSFRow row = sheet.createRow(i + 1);
// 得到要插入的每一条记录
xlsDto = xls.get(i);
for (int colu = 0; colu <= 4; colu++) {
// 在一行内循环
HSSFCell xh = row.createCell(0);
xh.setCellValue(xlsDto.getXh());
HSSFCell xm = row.createCell(1);
xm.setCellValue(xlsDto.getXm());
HSSFCell yxsmc = row.createCell(2);
yxsmc.setCellValue(xlsDto.getYxsmc());
HSSFCell kcm = row.createCell(3);
kcm.setCellValue(xlsDto.getKcm());
HSSFCell cj = row.createCell(4);
cj.setCellValue(xlsDto.getCj());
(xlsDto.getMessage());
}
}
// 创建文件输出流,准备输出电子表格
OutputStream out = new FileOutputStream("POI2Excel/pldrxkxxmb.xls");
hwb.write(out);
out.close();
System.out.println("数据库导出成功");
}

}



XlsDto .java类
//该类是一个实体类

public class XlsDto {
/**
* 选课号
*/
private Integer xkh;
/**
* 学号
*/
private String xh;
/**
* 姓名
*/
private String xm;
/**
* 学院
*/
private String yxsmc;
/**
* 课程号
*/
private Integer kch;
/**
* 课程名
*/
private String kcm;
/**
* 成绩
*/
private float cj;
public Integer getXkh() {
return xkh;
}
public void setXkh(Integer xkh) {
this.xkh = xkh;
}
public String getXh() {
return xh;
}
public void setXh(String xh) {
this.xh = xh;
}
public String getXm() {
return xm;
}
public void setXm(String xm) {
this.xm = xm;
}
public String getYxsmc() {
return yxsmc;
}
public void setYxsmc(String yxsmc) {
this.yxsmc = yxsmc;
}
public Integer getKch() {
return kch;
}
public void setKch(Integer kch) {
this.kch = kch;
}
public String getKcm() {
return kcm;
}
public void setKcm(String kcm) {
this.kcm = kcm;
}
public float getCj() {
return cj;
}
public void setCj(float cj) {
this.cj = cj;
}

}



后台输出:
数据库导出成功
1.0 hongten 信息技术学院 计算机网络应用基础 80.0
2.0 王五 信息技术学院 计算机网络应用基础 81.0
3.0 李胜基 信息技术学院 计算机网络应用基础 82.0
4.0 五班古 信息技术学院 计算机网络应用基础 83.0
5.0 蔡诗芸 信息技术学院 计算机网络应用基础 84.0

 String temFilePath = getServletContext().getRealPath("/") + "uploadfiles/" + tmpXlsName;
File file = new File(temFilePath);
    InputStream input =new FileInputStream(file);
    Workbook wb = WorkbookFactory.create(input); // 根据模板生成新的excel文件
    input.close();
   
    Sheet sheet = wb.getSheetAt(0);
while (rs.next()) {
    Row row =sheet.getRow(++rowIdx);
    if(row==null){
    row =sheet.createRow(rowIdx);
    }
    for (int cIdx=Integer.parseInt(colStartIdx)-1,colIdx=1; cIdx<Integer.parseInt(colEndIdx); cIdx++,colIdx++) {
    Object value = rs.getObject(colIdx);
    Cell cell = row.createCell(cIdx);
    cell.setCellValue(value==null?"":value.toString());
    cell.setCellStyle(cs);
    }
    }
大概代码就是这样,根据你的模板,生成文件后,。。。

http://blog.csdn.net/lenotang/article/details/2823230可以参考一下这个


衡南县17395512872: Java怎么用POI读取Excel函数 -
单性韦乐: 思路很简单: 1、在程序里取得公式 2、在公式执行之前校验格式,把多余的都好去掉(简单的replace) 3、然后再进行计算

衡南县17395512872: JAVA利用poi如何向excel已合并的单元格中写入内容 -
单性韦乐: hssfworkbook wb = new hssfworkbook(); hssfsheet sheet = wb.createsheet("new sheet"); hssfrow row = sheet.createrow((short) 1); hssfcell cell = row.createcell((short) 1); hssfrichtextstring content = new hssfrichtextstring("this is a test of message...

衡南县17395512872: 如何在Java中操作Excel -
单性韦乐: POI对excel的支持算是好的了.但也没有你说的那样打印,预览,功能.如果是应用程序,不是很好处理.如果是web程序,可以如下处理.1.在后台用POI类库生成excel.2.用流的方式,将生成的excel传递给前台浏览器,在浏览器中打开.3.使用浏览器的打印功能来进行打印.

衡南县17395512872: 如何用JAVA将数据库中的数据导入到excel表格 -
单性韦乐: 第一步:如何用POI操作Excel@Test public void createXls() throws Exception{//声明一个工作薄HSSFWorkbook wb = new HSSFWorkbook();//声明表HSSFSheet sheet = wb.createSheet("第一个表");//声明行HSSFRow row = sheet.createRow(7);//声明列HSSFCell cel = row.createCell(3);//写入数据cel.setCellValue("你也好");

衡南县17395512872: 如何用java poi编写代码来设置Excel单元格是否锁定功能? -
单性韦乐: import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel....

衡南县17395512872: 用java poi包读取Excel单元格 -
单性韦乐: String excelDir ="c:/tep.xls"; //excel路径 FileInputStream finput = new FileInputStream("excelDir" ); POIFSFileSystem fs = new POIFSFileSystem( finput ); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0);...

衡南县17395512872: 如何利用JAVA生成Excel文件 -
单性韦乐: package beans.excel;import java.io.IOException; import java.io.OutputStream;import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException;public class ...

衡南县17395512872: java怎么用poi设置excel单元格边框??? -
单性韦乐: setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框setBorder.setBorderTop(HS...

衡南县17395512872: Java源代码:POI操作Excel如何创建下拉框
单性韦乐: Java代码package poiexcel; import java.io.FileOutputStream; import java.util.Date; import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDataValidation; ...

衡南县17395512872: java使用poi导出excel -
单性韦乐: 找不到文件流,原因是因为,这里的inputName是你本机的路径,你本机有这个文件,所以能下载,但是发布到服务器上,这里的inputName就是服务器上的路径,而服务器上这个路径下没有这个文件,所以找不到文件流!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网