「javapoi包」poi需要的jar包

博主:adminadmin 2022-12-08 00:24:07 96

本篇文章给大家谈谈javapoi包,以及poi需要的jar包对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用javaPOI包的方法获取excel中的行列号

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/br

*

* 参考地址:

*

*/

public class XlsMain {

public static void main(String[] args) throws IOException {

XlsMain xlsMain = new XlsMain();

XlsDto xls = null;

ListXlsDto 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 ListXlsDto对象

* @throws IOException

* 输入/输出(i/o)异常

*/

private ListXlsDto readXls() throws IOException {

InputStream is = new FileInputStream("pldrxkxxmb.xls");

HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

XlsDto xlsDto = null;

ListXlsDto list = new ArrayListXlsDto();

// 循环工作表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());

}

}

}

JAVA使用poi包,向Excel中写入批量数据

public static void drawExcel(HSSFWorkbook wb, String sheetName, String title, int n, List? exlList, int[] index){

ListObject[] exList =(ListObject[])exlList;

int len = exList.get(0).length;

// 创建一个sheet表单

HSSFSheet sheet = wb.createSheet(sheetName);

Region region = null;

//样式

HSSFCellStyle cellStyle1 = setStyleBorder(wb);

HSSFCellStyle cellStyle2 = setStyleFontBorder(wb);

// 创建标题行

HSSFRow row = sheet.createRow(0);

row.setHeight((short)500);

// 创建单元格

HSSFCell cell = null;

if(title != null !"".equals(title)){

region = new Region(0, (short)0, 0, (short)(len- 1));

sheet.addMergedRegion(region);

cell = row.createCell(0);

// 标题写入单元格

cell.setCellValue(title);

cell.setCellStyle(setStyleFontSize(wb, 18));

}else{

n = n - 1;

}

NumberFormat formatter = NumberFormat.getNumberInstance();

formatter.setMaximumFractionDigits(8);

//合计信息

Double[] sum = new Double[len];

Object[] s = null;

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

s = exList.get(i);

row = sheet.createRow(i + n);

// 创建数据行

for(int j = 0; j s.length; j++){

cell = row.createCell(j);

/***

* jobin create

*/

if(s[j] instanceof Integer || s[j] instanceof Float){

cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

}else{

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

}

if(!StringUtils.isNotEmpty(s[j])){

cell.setCellStyle(cellStyle1);

continue;

}

String[] rs = null;

int l = 3000;

if(i == 0 s[j].toString().indexOf(",") 0){

rs = s[j].toString().split(",");

cell.setCellValue(rs[0]);

l = Integer.parseInt(rs[1]);

}else{

cell.setCellValue(s[j].toString());

}

if(i == 0){

cell.setCellStyle(cellStyle2);

//设置列宽

// if(j == 0){

sheet.setColumnWidth(j, l);

// }else if(j == s.length -1){

// sheet.setColumnWidth(j, 5000);

// }else{

// sheet.setColumnWidth(j, 3000);

// }

}else{

cell.setCellStyle(cellStyle1);

//合计统计

if(index != null){

for(int in : index){

if(in == j){

if(sum[in] == null) sum[in] = 0.0;

sum[in] += Double.parseDouble(s[j].toString());

}

}

}

}

}

}

//合计信息

if(index != null){

region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));

sheet.addMergedRegion(region);

row = sheet.createRow(exList.size() + n);

for(int i = 0; i sum.length; i++){

cell = row.createCell(i);

cell.setCellStyle(cellStyle2);

if(i == 0){

cell.setCellValue("合计");

}else if(sum[i] != null){

cell.setCellValue(formatter.format(sum[i]).replace(",", ""));

}

}

}

}

核心代码,我项目上使用的

关于Java 的 poi jar包

如果导入多个版本的jar包,且jar包中的包.类名相同的话,默认会按照classpath导入的顺序选择,你这里导入的3.7在3.0的classpath之前,因此系统选择的是你新加入的3.7版本。而且这种情况只能选择一个版本来完成,无法两个版本一起使用。(因为包名和类名相同,但方法不同。)

你只能删除你自己的jar包,使用本身系统中的3.0来完成

为什么我java工程中引入了poi包还是会报错。。

你的项目上还有红色感叹号!!你没有把jar导入,或者导入后没有编译

关于javapoi包和poi需要的jar包的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。