Java读取excel文件 将Excel文件变为二维String数组 .
Java代码
- 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();
- }
- }
- 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;
- }
转载于:https://blog.51cto.com/daheyuan/1139366
Java读取excel文件 将Excel文件变为二维String数组 .相关推荐
- Java实现微信公众号直接发送参数二维码给用户
文章目录 前言 一.参数二维码的作用 二.功能实现 1. 生成带参数二维码 2. 上传二维码图片 3. 发送带参数二维码给用户 总结 前言 公众号开发近些年是一个比较热门的方向,今天为大家讲解的是用J ...
- Java实现生成可跳转指定页面的二维码
Java实现生成可跳转指定页面的二维码 package test; import java.awt.BasicStroke; import java.awt.Graphics; import java ...
- Python 二维码的读取与生成:使用链接生成二维码、读取二维码里的链接
Python 二维码的读取与生成演示 ① 使用链接生成二维码 ② 读取二维码里的链接 [ 文章推荐 ] Python 绘制中国地图:使用 pyecharts 最新版本绘制中国地图实例详解,个性化地图定 ...
- java读取系统中指定的文件_java读取jar中指定的文件
Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...
- java读取json配置文件_解决:java 读取 resources 下面的 json 文件
前言:java 读取 工程下的配置文件,文件类型为 json(*.json),记录一下始终读取不到 json 文件的坑.maven项目 直接上工具类代码 package com.yule.compon ...
- es elasticsearch 几种常见查询场景 二次分组 java读取es的查询json文件
大家好,我是烤鸭: es中几种常见的查询场景,使用java读取es的json文件进行查询. es 中文使用手册. https://www.elastic.co/guide/cn/elasticsear ...
- java读取局域网共享文件夹中文件并保存到本地文件夹
在磁盘新建一个文件夹,右击文件夹属性,点击共享 点击网络和共享中心 设置文件夹可访问权限 到此就可以用本地ip加文件夹名称访问了,同局域网也可以通过改地址访问 文件夹的名称来自这张图的 网络路径 如果 ...
- java 读取 解析微软Project .mpp 文件到甘特图
1.引入价包; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</art ...
- Java读取指定路径下的文件列表
直接贴代码吧.不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了 ...
最新文章
- 机器学习概念 — 线性感知机、线性回归、单个神经元、多层次神经元
- matlab中读文件的行数_[转载]MATLAB中获取大型文本文件行数方法研究(转)
- 电话订票每日开始时间(几点放票) - 北京本地宝
- 用 Flask 来写个轻博客
- VTK:IO之ReadPDB
- 鸿蒙处理器的手机有什么,华为重拳出击!首款鸿蒙手机已确认,网友:还买什么iPhone11?...
- Python max 函数 - Python零基础入门教程
- Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决
- java编程编一个小系统_如何编写一个java学生信息管理系统?
- Java语法基础,课后实践
- 5-2 持久化的作用/5-3 RDB1/5-4 RDB2/5-5 RDB3
- mysql python2_Python 16.2 使用MySQL
- linux mysql 数据按表名称备份
- IDEA快捷键之搜索查询
- [leetcode]187. Repeated DNA Sequences寻找DNA中重复出现的子串
- 图书信息管理系统设计与实现c语言,图书信息管理系统设计(c语言)
- 数据结构:自组织线性表
- python实现乘法口诀表
- python学习实验报告(第五周)
- Android中如何利用Minui显示PNG格式的图片
热门文章
- (原+转)使用opencv的DFT计算卷积
- TCP拥塞控制和TCP流量控制
- 在Ubuntu上以服务方式运行Java程序
- 对XML文件进行的添加、删除、修改、查询操作。
- 手把手教你学dsp_新课免费看| 手把手教你学DSP,C2000从入门到精通
- 页面点击提交跳转_一个入口一次提交!“六税合一”综合申报操作指南请收好~...
- thinkphp的分页类
- java代码中出现乱码怎么解决?
- Rabbitmq专题:rabbitMQ如何保证消息的可靠性投递?如何防止消息丢失
- 上传文件的加密和下载文件解密