当前位置:首页 » 编程语言 » javapoiexcel

javapoiexcel

发布时间: 2023-03-15 19:54:40

A. java poi导出excel

用spire.xls.jar也可以导出excel,代码更简单

  1. import com.spire.xls.ExcelVersion;

  2. import com.spire.xls.Workbook;

  3. import com.spire.xls.Worksheet;


  4. public class InsertArray {


  5. public static void main(String[] args) {


  6. //创建Workbook对象

  7. Workbook wb = new Workbook();

  8. //获取第一张工作表

  9. Worksheet sheet = wb.getWorksheets().get(0);

  10. //定义一维数据

  11. String[] oneDimensionalArray = new String[]{"苹果", "梨子", "葡萄", "香蕉"};

  12. //将数组从指定单个格开始写入工作表,true表示纵向写入,设置为false为横向写入

  13. sheet.insertArray(oneDimensionalArray, 1, 1, true);

  14. //定义二维数组

  15. String[][] twoDimensionalArray = new String[][]{

  16. {"姓名", "年龄", "性别", "学历"},

  17. {"小张", "25", "男", "本科"},

  18. {"小王", "24", "男", "本科"},

  19. {"小李", "26", "女", "本科"}

  20. };

  21. //从指定单元格开始写入二维数组到工作表

  22. sheet.insertArray(twoDimensionalArray, 1, 3);

  23. //保存文档

  24. wb.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);

  25. }

  26. }

B. java poi怎么获取Excel sheet页的数量

java poi获取Excel sheet页的数量方法如下:

在导出excel时候需要导出多个sheet页,后面sheet页会覆盖前面sheet页的内容。
这么写代码:
HSSFWorkbook workbook = null;
workbook=new HSSFWorkbook();

for(){

//没有现成的文件需要重新计算
HSSFSheet sheet_sin =workbook.createSheet(month_query1);
sheet_sin= makeJDL(year_query,month_query1,sheet_sin,workbook);

}

C. java使用poi读取excel时,电话号码变成了科学计数法,整数变成double,怎么改过来

为了防止数字变成科学计数法方式表示谨滑运,在源文件以及java代码中都用文的方式去生成和解析excel,具体如下:

生成Excel时,设置单元格格式为STRING,即:

//关键代码

HSSFCell cell = new HSSFCell();

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

同理,解析的时候,首先要保证源excel文件中该单元格格式是文本类型的,然后在java代码里用STRING类型去解析:

//关键代码

String value = cell.getStringCellValue();

(3)javapoiexcel扩展阅读;

在这里,将只介绍一祥梁些和格式设置有关的语句,假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:

创建字体,设置其为红色、粗体:

HSSFFont font = workbook.createFont();

font.setColor(HSSFFont.COLOR_RED);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

D. java操作poi怎么更改excel中的数据

修改完需要写入,也就是保存一下的。
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 ChangeCell {

@SuppressWarnings("deprecation")
public static void main(String[] args) {
String fileToBeRead = "C:\\exp.xls"; // excel位置
int coloum = 1; // 比如你要获取第1列
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
fileToBeRead));
HSSFSheet sheet = workbook.getSheet("Sheet1");

for (int i = 0; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow((short) i);
if (null == row) {
continue;
} else {
HSSFCell cell = row.getCell((short) coloum);
if (null == cell) {
continue;
} else {
System.out.println(cell.getNumericCellValue());
int temp = (int) cell.getNumericCellValue();
cell.setCellValue(temp + 1);
}
}
}
FileOutputStream out = null;
try {
out = new FileOutputStream(fileToBeRead);
workbook.write(out);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}

E. java用poi导出excel文件,打开导出的文件时报错,怎么办

两个原因:

1.你的excel模版本身有问题,可以尝试新建一个模版。

2.你的excel使用了一些POI不支持的函数。

解决办法:

另存是由excel重写了完整的文件,可以解决问题。

关闭文件例子:

FileOutputStream os = new FileOutputStream("workbook.xls");

wb.write(os);

os.close();

F. 用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>
*
*
参考地址: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<XlsDto>
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<XlsDto>对象
*
@throws
IOException
*
输入/输出(i/o)异常
*/
private
List<XlsDto>
readXls()
throws
IOException
{
InputStream
is
=
new
FileInputStream("pldrxkxxmb.xls");
HSSFWorkbook
hssfWorkbook
=
new
HSSFWorkbook(is);
XlsDto
xlsDto
=
null;
List<XlsDto>
list
=
new
ArrayList<XlsDto>();
//
循环工作表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());
}
}
}

G. java excel poi 怎么导入

1、下载poi相关jar,maven的集成如下:(把${poi.version}替换成你要的版本)

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>${poi.version}</version>
<scope>provided</scope>
</dependency>

2、根据poi相关api读取sheet、row、cell,获得excel的数据:

封装row的对象,即每一行数据为一个对象,每个cell为对象里的一个属性,

整个sheet的数据装进集合里;

3、处理数据,可以对数据进行验证或其他操作;

4、写数据库操作。

热点内容
动态规划01背包算法 发布:2024-11-05 22:17:40 浏览:849
nasm编译器如何安装 发布:2024-11-05 22:01:13 浏览:180
登录密码在微信的哪里 发布:2024-11-05 22:00:29 浏览:739
c防止反编译工具 发布:2024-11-05 21:56:14 浏览:247
安卓虚拟机怎么用 发布:2024-11-05 21:52:48 浏览:343
php时间搜索 发布:2024-11-05 20:58:36 浏览:478
燕山大学编译原理期末考试题 发布:2024-11-05 20:13:54 浏览:527
华为电脑出现临时服务器 发布:2024-11-05 20:05:08 浏览:408
斗战神免费挖矿脚本 发布:2024-11-05 19:53:25 浏览:665
网吧服务器分别是什么 发布:2024-11-05 19:45:32 浏览:392