javapoiexcel
A. java poi导出excel
用spire.xls.jar也可以导出excel,代码更简单
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class InsertArray {
public static void main(String[] args) {
//创建Workbook对象
Workbook wb = new Workbook();
//获取第一张工作表
Worksheet sheet = wb.getWorksheets().get(0);
//定义一维数据
String[] oneDimensionalArray = new String[]{"苹果", "梨子", "葡萄", "香蕉"};
//将数组从指定单个格开始写入工作表,true表示纵向写入,设置为false为横向写入
sheet.insertArray(oneDimensionalArray, 1, 1, true);
//定义二维数组
String[][] twoDimensionalArray = new String[][]{
{"姓名", "年龄", "性别", "学历"},
{"小张", "25", "男", "本科"},
{"小王", "24", "男", "本科"},
{"小李", "26", "女", "本科"}
};
//从指定单元格开始写入二维数组到工作表
sheet.insertArray(twoDimensionalArray, 1, 3);
//保存文档
wb.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);
}
}
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、写数据库操作。