问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么用java代码读取excel文件

发布网友 发布时间:2022-04-22 14:49

我来回答

2个回答

热心网友 时间:2023-11-09 16:17

本例使用java来读取excel的内容并展出出结果,代码如下:

复制代码 代码如下:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class ExcelOperate {

public static void main(String[] args) throws Exception {
File file = new File("ExcelDemo.xls");
String[][] result = getData(file, 1);
int rowLength = result.length;
for(int i=0;i<rowLength;i++) {
for(int j=0;j<result[i].length;j++) {
System.out.print(result[i][j]+"\t\t");
}
System.out.println();
}

}
/**
* 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行
* @param file 读取数据的源Excel
* @param ignoreRows 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1
* @return 读出的Excel中数据的内容
* @throws FileNotFoundException
* @throws IOException
*/
public static String[][] getData(File file, int ignoreRows)
throws FileNotFoundException, IOException {
List<String[]> result = new ArrayList<String[]>();
int rowSize = 0;
BufferedInputStream in = new BufferedInputStream(new FileInputStream(
file));
// 打开HSSFWorkbook
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFCell cell = null;
for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
HSSFSheet st = wb.getSheetAt(sheetIndex);
// 第一行为标题,不取
for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {
HSSFRow row = st.getRow(rowIndex);
if (row == null) {
continue;
}
int tempRowSize = row.getLastCellNum() + 1;
if (tempRowSize > rowSize) {
rowSize = tempRowSize;
}
String[] values = new String[rowSize];
Arrays.fill(values, "");
boolean hasValue = false;
for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {
String value = "";
cell = row.getCell(columnIndex);
if (cell != null) {
// 注意:一定要设成这个,否则可能会出现乱码
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd")
.format(date);
} else {
value = "";
}
} else {
value = new DecimalFormat("0").format(cell
.getNumericCellValue());
}
break;
case HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
value = "";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y"
: "N");
break;
default:
value = "";
}
}
if (columnIndex == 0 && value.trim().equals("")) {
break;
}
values[columnIndex] = rightTrim(value);
hasValue = true;
}

热心网友 时间:2023-11-09 16:17

您好,请问您是想知道怎么用java代码读取excel文件吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...5年,求高手推荐几只后端收费的股票型基金,不胜感激! 离职申请表盖合同章有法律效力吗 beatsstudio3如何开启蓝牙配对模式 BeatsStudio3Wireless怎么连接iPhone?BeatsStudio3Wireless连接iPhone教... beats studio 3如果开蓝牙连苹果手机,能听到的最远距离是多少_百度知 ... 一分钱腾讯理财通可能银行卡被盗吗 受众不仅是信息接受者,还是传播的主动者吗? ...的联通卡到期了,不用了且不注销的话会有什么影响呢 桔普茶的禁忌 喝桔普茶的副作用 oppo手机新品上市5goppo手机新品上市时间 怎么用java实现读取excel表格里的数据生成曲线图 404 Not Found java中的基本数据类型有哪些 java 导出Excel数据如何生成图表,如柱状图,折线图 java如何把excel和Word文档的每一页转换为图片 钄?彍娌欐媺鏈夊摢浜涘仛娉曪紝鏈変粈涔堣瘈绐嶏紵 微信转转二手怎样把自己的东西卖出去 转转二手从哪里卖二手乐器? 在转转上怎么卖二手手机那? 转转二手卖东西是什么样的一个流程那? 在转转二手上出售二手手机需要注意什么? 微信转转怎么卖收银机 我想在转转二手上卖一部二手手机怎么操作啊? 我想在转转二手上面卖一个手机,具体怎么操作? 怎么在转转上面卖手机? 转转二手上应该如何卖二手手机? 孩子学习一点也不主动,该如何解决? 儿子九岁了,很聪明,但是从不主动学习,怎么办呢? 初中孩子不主动学怎么办? 现在的孩子普遍不主动学习,这是什么原因导致的? 怎么用java实现读取excel表格里的数据生成曲线图 java web poi如何按查询结果导出相应的Excel 求助,JAVA实现excel表格的可视化修改 java程序能把存在数据库表中的字符串转换成相应的文件(word,图片,excel)吗?怎么转? 求解!JAVA 使用Apache POI将PPTX转图片出错。见下图 java导出图片到excel java导出图片到excel怎么做? iphone 7plus尺寸是多大? 苹果7plus 有多大内存的 华为畅享7plus如何打开OTG功能 华为畅想7plus有otg功能吗,该如何打开? 华为畅享7plus有OTG功能吗,怎么找不到 腌制的虎皮青椒里能加醋吗? 做虎皮尖椒是用米醋还是陈醋 虎皮尖椒怎样做 虎皮尖椒的家常做法窍门 怎样做虎皮尖椒 在家自制虎皮尖椒,需掌握哪些技术要领? 虎皮青椒的家常做法步骤 虎皮尖椒的做法 如何做会更入味