Java程序有关XLS表格文件的读取

IO流

.

在我看来,IO流核心便是读文件和写文件操作,有同学委托帮忙,今天尝试写了有关xls文件的读取

代码如下

package com.dehong.test;import java.io.*;import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;class XlsHelper {//得到导入数据至数据库public void getDataFromExcel(String filePath,int index,int sheetHead) {if(!filePath.endsWith(".xls")) {System.out.println("格式不支持");}//定义FileInputStream fis=null;Workbook workbook=null;//初始化try {fis=new FileInputStream(filePath);workbook = new HSSFWorkbook(fis);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}//得到第几张表Sheet sheet=workbook.getSheetAt(index);//得到表头Row rowHead=sheet.getRow(sheetHead);//获取表格长度int totalColNum=rowHead.getLastCellNum();int totalRowNum=sheet.getLastRowNum();//设置表头数组String []heads=new String[totalColNum];//设置数据数组String []parameters=new String[totalColNum];//得到表头列表for(int i=0;i<totalColNum-1;i++) {//cell.setCellType(CellType.STRING);Cell cell=rowHead.getCell((short)i);cell.setCellType(CellType.STRING);heads[i]=cell.getStringCellValue().trim();}//获得所有数据for(int i = sheetHead+1 ; i <= totalRowNum ; i++){//获得第i行对象Row row = sheet.getRow(i);//遍历这一行所有数据for(int j=0;j<totalColNum;j++) {Cell cell=row.getCell(j);cell.setCellType(CellType.STRING);parameters [j]=cell.getStringCellValue().trim();System.out.println(parameters [j]);}}}
}

说说写的过程遇到的问题:列的个数获取总是出错,现在的代码依然有点小问题,getLastColNum();方法getPhysicalNumberOfCells();方法都不是很好用,我也没找到更好的方法,只能凑合用了,由于项目需要导入数据到数据库中,目前只能做到取出数据,明天继续更新,尝试解决xls表和数据库不匹配的问题。
同时我还写了一个不错的SqlHelper类,分享并记录下来,便于以后观看

package com.dehong.test;import java.sql.*;/*** 数据库工具* 查询操作* 更新操作* 日期:2019年3月8日* @author HecW**/
class SqlHelper {//定义驱动和连接private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=#";private static String username="sa";private static String password="cup2016";private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//定义要使用的类private static PreparedStatement ps=null;private static Connection ct=null;private static ResultSet rs=null;//初始化连接static {try {Class.forName(driver);System.out.println("数据库加载成功");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}//得到连接public static Connection getConnection() {try {ct=DriverManager.getConnection(url, username, password);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("数据库连接成功");return ct;}//查询数据public static ResultSet query(String sql,String[] parameters) {try {ct=getConnection();if(parameters!=null) {ps=ct.prepareStatement(sql);for(int i=0;i<parameters.length;i++) {ps.setString(i+1, parameters[i]);}}rs=ps.executeQuery();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//暂时不能关闭资源,结果未处理}return rs;}//更新操作方法//注意要实现多条sql语句的更新操作除了双重for循环以外,还要将连接ct.setAutoCommit(flase);设为false,如果出现异常则rollback,正常则ct.commit();public static void update(String sql,String []parameters) {try {ct=getConnection();ps=ct.prepareStatement(sql);if(parameters!=null) {for(int i=0;i<parameters.length;i++) {ps.setString(i+1, parameters[i]);}}ps.executeUpdate();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally {close(ps,rs,ct);}}//关闭资源的函数public static void close(PreparedStatement ps,ResultSet rs,Connection ct) {if(rs!=null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}rs=null;//加快垃圾回收}if(ps!=null) {try {ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}ps=null;//加快垃圾回收}if(ct!=null) {try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}ct=null;//加快垃圾回收}}//提供私有属性的get方法public static String getUrl() {return url;}public static String getUsername() {return username;}public static String getPassword() {return password;}public static String getDriver() {return driver;}public static PreparedStatement getPs() {return ps;}public static Connection getCt() {return ct;}public static ResultSet getRs() {return rs;}}

有关XLS文件的读取相关推荐

  1. python使用xlwt和xlrd对xls文件进行读取

    用xlwt对xls文件进行写入 from xlwt import Workbook from random import randint 注意:不要奢求xlwt能够对一个已经存在的文件进行写操作,要打 ...

  2. python操作xls文件,读取、写入、调整

    1.读取excel import xlrd import xlwt from datetime import date,datetime# 打开文件 workbook = xlrd.open_work ...

  3. java 读取txt文件和xls文件

    ①:java读取txt文件 首先声明一下,我此处所涉及的文件读取只是简单的读取以及自己的一些见解.如有错误,还请提点 package test;import java.io.BufferedReade ...

  4. Pandas读csv,xlsx,XLS文件,读代表名的文件

    Pandas读文件 1.读取csv文件 2.读取xlsx,XLS文件 1.读取csv文件 读csv文件用pandas.read_csv() 这里要注意的是 " \ " 和" ...

  5. Python读取excel文件可读取xlsx格式和xls格式可直接读取超链接,读出为字典格式(列表套字典),处理合并单元格的问题

    直接上代码:(代码有注释,代码下方有解释) 1.可读取excel中的xlsx格式文件 2.可读取excel中的xls格式文件 3.可直接读取网页上的excel的超链接 4.解决有列合并的情况以及行合并 ...

  6. java 解析xls 文件_java简单解析xls文件的方法示例【读取和写入】

    本文实例讲述了java简单解析xls文件的方法.分享给大家供大家参考,具体如下: 读取: import java.io.*; import jxl.*; import jxl.write.*; imp ...

  7. python读取xls文件_从python中的xls读取unicode

    我正在尝试使用 Python读取.xls文件.该文件包含多个非ascii字符(即äöü).我已经尝试过使用openpyxls和xlrd(我对xlrd寄予厚望,因为它无论如何都会读取unicode中的所 ...

  8. php读取doc pdf文件,PHP读取创建txt,doc,xls,pdf类型文件

    PHP读取或者创建txt,doc,xls,pdf各个类型文件的方法. php读取(文本.txt)文件: 一般是使用fopen.fgets的方法,例如: $fp=fopen('文件名.txt','r') ...

  9. Python读取txt文件画Loss曲线图---txt文件转xls文件---xls文件转txt文件--xml文件转txt文件

    任务1- 读取.txt文件画折线图(曲线图) 任务2- 将.txt文件转换成.xls(excel)文件 任务3- 将.xls(excel)文件转换成.txt文件 任务4- 读取.txt文件画折线图(曲 ...

  10. Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)

    Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+': not supported') 只需要下载pyexce ...

最新文章

  1. 2021年大数据常用语言Scala(十):基础语法学习 方法
  2. 网络营销外包专员浅析企业网络营销外包整合关键点有哪些?
  3. Typora操作指南
  4. 红帽子linux开启telnet,RedHat linux 9下配置telnet服务 | 技术部落
  5. 用户体验中巧妙的过场动画
  6. GDB 远程调试Linux (CentOS)
  7. Linux软件安装为什么名字不一样
  8. java虚拟机文件_JAVA虚拟机已经安装,但不知道在哪儿编译和运行程序。
  9. 2.4.5 数据框(data frame)的建立
  10. 特色十足,FIIL 随身星体验
  11. Dotnet WebAPI 项目启动提示 500.30 - ANCM In-Process Start Failure
  12. java 循环依赖_Java详解之Spring Bean的循环依赖解决方案
  13. php获取谷歌邮箱,php 获取gmail 联系人邮箱,应用oauth2.0验证
  14. 布线可视化管理12芯OM3室内多模光缆
  15. 如何在云服务器上自动运行.py文件
  16. speedoffice文档如何在方框内打钩
  17. Hazelcast IMDG参考中文版手册-第十一章-分布式查询
  18. Excel整行数据自动标颜色
  19. AE动效设计:超越技术的动態思维|打造脱颖而出的代表作
  20. 架构设计文章读后感3

热门文章

  1. 大自然Windows XP日文版镜像
  2. 玩游戏计算机丢失msvcp,计算机丢失msvcp怎么办
  3. Surface Go1 与Surface Go2的不同 (非专业对比)
  4. 面对危机,中国也不应修修补补
  5. 盘点那些年,被Oracle收购的公司
  6. dnf超时空漩涡副本路线流程图_DNF超时空漩涡怎么打
  7. [Linux]history命令用法详解
  8. 「Odoo 基础教程系列」第七篇——从 Todo 应用开始(6)
  9. 转载CSDN博客时的错误
  10. 创业和工作的心态问题