Java代码

  1. import java.io.BufferedInputStream;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.text.DecimalFormat;
  7. import java.text.SimpleDateFormat;
  8. import java.util.ArrayList;
  9. import java.util.Arrays;
  10. import java.util.Date;
  11. import java.util.List;
  12. import org.apache.poi.hssf.usermodel.HSSFCell;
  13. import org.apache.poi.hssf.usermodel.HSSFDateUtil;
  14. import org.apache.poi.hssf.usermodel.HSSFRow;
  15. import org.apache.poi.hssf.usermodel.HSSFSheet;
  16. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  17. import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  18. public class ExcelOperate {
  19. public static void main(String[] args) throws Exception {
  20. File file = new File("ExcelDemo.xls");
  21. String[][] result = getData(file, 1);
  22. int rowLength = result.length;
  23. for(int i=0;i<rowLength;i++) {
  24. for(int j=0;j<result[i].length;j++) {
  25. System.out.print(result[i][j]+"\t\t");
  26. }
  27. System.out.println();
  28. }
  29. }
  30. public static String[][] getData(File file, int ignoreRows)
  31. throws FileNotFoundException, IOException {
  32. List<String[]> result = new ArrayList<String[]>();
  33. int rowSize = 0;
  34. BufferedInputStream in = new BufferedInputStream(new FileInputStream(
  35. file));
  36. // 打开HSSFWorkbook
  37. POIFSFileSystem fs = new POIFSFileSystem(in);
  38. HSSFWorkbook wb = new HSSFWorkbook(fs);
  39. HSSFCell cell = null;
  40. for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
  41. HSSFSheet st = wb.getSheetAt(sheetIndex);
  42. // 第一行为标题,不取
  43. for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {
  44. HSSFRow row = st.getRow(rowIndex);
  45. if (row == null) {
  46. continue;
  47. }
  48. int tempRowSize = row.getLastCellNum() + 1;
  49. if (tempRowSize > rowSize) {
  50. rowSize = tempRowSize;
  51. }
  52. String[] values = new String[rowSize];
  53. Arrays.fill(values, "");
  54. boolean hasValue = false;
  55. for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {
  56. String value = "";
  57. cell = row.getCell(columnIndex);
  58. if (cell != null) {
  59. // 注意:一定要设成这个,否则可能会出现乱码
  60. cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  61. switch (cell.getCellType()) {
  62. case HSSFCell.CELL_TYPE_STRING:
  63. value = cell.getStringCellValue();
  64. break;
  65. case HSSFCell.CELL_TYPE_NUMERIC:
  66. if (HSSFDateUtil.isCellDateFormatted(cell)) {
  67. Date date = cell.getDateCellValue();
  68. if (date != null) {
  69. value = new SimpleDateFormat("yyyy-MM-dd")
  70. .format(date);
  71. } else {
  72. value = "";
  73. }
  74. } else {
  75. value = new DecimalFormat("0").format(cell
  76. .getNumericCellValue());
  77. }
  78. break;
  79. case HSSFCell.CELL_TYPE_FORMULA:
  80. // 导入时如果为公式生成的数据则无值
  81. if (!cell.getStringCellValue().equals("")) {
  82. value = cell.getStringCellValue();
  83. } else {
  84. value = cell.getNumericCellValue() + "";
  85. }
  86. break;
  87. case HSSFCell.CELL_TYPE_BLANK:
  88. break;
  89. case HSSFCell.CELL_TYPE_ERROR:
  90. value = "";
  91. break;
  92. case HSSFCell.CELL_TYPE_BOOLEAN:
  93. value = (cell.getBooleanCellValue() == true ? "Y"
  94. : "N");
  95. break;
  96. default:
  97. value = "";
  98. }
  99. }
  100. if (columnIndex == 0 && value.trim().equals("")) {
  101. break;
  102. }
  103. values[columnIndex] = rightTrim(value);
  104. hasValue = true;
  105. }

转载于:https://blog.51cto.com/daheyuan/1139366

Java读取excel文件 将Excel文件变为二维String数组 .相关推荐

  1. Java实现微信公众号直接发送参数二维码给用户

    文章目录 前言 一.参数二维码的作用 二.功能实现 1. 生成带参数二维码 2. 上传二维码图片 3. 发送带参数二维码给用户 总结 前言 公众号开发近些年是一个比较热门的方向,今天为大家讲解的是用J ...

  2. Java实现生成可跳转指定页面的二维码

    Java实现生成可跳转指定页面的二维码 package test; import java.awt.BasicStroke; import java.awt.Graphics; import java ...

  3. Python 二维码的读取与生成:使用链接生成二维码、读取二维码里的链接

    Python 二维码的读取与生成演示 ① 使用链接生成二维码 ② 读取二维码里的链接 [ 文章推荐 ] Python 绘制中国地图:使用 pyecharts 最新版本绘制中国地图实例详解,个性化地图定 ...

  4. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

  5. java读取json配置文件_解决:java 读取 resources 下面的 json 文件

    前言:java 读取 工程下的配置文件,文件类型为 json(*.json),记录一下始终读取不到 json 文件的坑.maven项目 直接上工具类代码 package com.yule.compon ...

  6. es elasticsearch 几种常见查询场景 二次分组 java读取es的查询json文件

    大家好,我是烤鸭: es中几种常见的查询场景,使用java读取es的json文件进行查询. es 中文使用手册. https://www.elastic.co/guide/cn/elasticsear ...

  7. java读取局域网共享文件夹中文件并保存到本地文件夹

    在磁盘新建一个文件夹,右击文件夹属性,点击共享 点击网络和共享中心 设置文件夹可访问权限 到此就可以用本地ip加文件夹名称访问了,同局域网也可以通过改地址访问 文件夹的名称来自这张图的 网络路径 如果 ...

  8. java 读取 解析微软Project .mpp 文件到甘特图

    1.引入价包; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</art ...

  9. Java读取指定路径下的文件列表

    直接贴代码吧.不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了 ...

最新文章

  1. 机器学习概念 — 线性感知机、线性回归、单个神经元、多层次神经元
  2. matlab中读文件的行数_[转载]MATLAB中获取大型文本文件行数方法研究(转)
  3. 电话订票每日开始时间(几点放票) - 北京本地宝
  4. 用 Flask 来写个轻博客
  5. VTK:IO之ReadPDB
  6. 鸿蒙处理器的手机有什么,华为重拳出击!首款鸿蒙手机已确认,网友:还买什么iPhone11?...
  7. Python max 函数 - Python零基础入门教程
  8. Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决
  9. java编程编一个小系统_如何编写一个java学生信息管理系统?
  10. Java语法基础,课后实践
  11. 5-2 持久化的作用/5-3 RDB1/5-4 RDB2/5-5 RDB3
  12. mysql python2_Python 16.2 使用MySQL
  13. linux mysql 数据按表名称备份
  14. IDEA快捷键之搜索查询
  15. [leetcode]187. Repeated DNA Sequences寻找DNA中重复出现的子串
  16. 图书信息管理系统设计与实现c语言,图书信息管理系统设计(c语言)
  17. 数据结构:自组织线性表
  18. python实现乘法口诀表
  19. python学习实验报告(第五周)
  20. Android中如何利用Minui显示PNG格式的图片

热门文章

  1. (原+转)使用opencv的DFT计算卷积
  2. TCP拥塞控制和TCP流量控制
  3. 在Ubuntu上以服务方式运行Java程序
  4. 对XML文件进行的添加、删除、修改、查询操作。
  5. 手把手教你学dsp_新课免费看| 手把手教你学DSP,C2000从入门到精通
  6. 页面点击提交跳转_一个入口一次提交!“六税合一”综合申报操作指南请收好~...
  7. thinkphp的分页类
  8. java代码中出现乱码怎么解决?
  9. Rabbitmq专题:rabbitMQ如何保证消息的可靠性投递?如何防止消息丢失
  10. 上传文件的加密和下载文件解密