JAVA读取Excel数据_java 读取excel判断是否包含\t-程序员宅基地

技术标签: excel  java  

下载 jxl.jar

找到一个博主发的,下载好后去掉.zip后缀
jxl.jar下载 - 天青色wy - 博客园 https://www.cnblogs.com/wangyi0419/p/12001258.html

导入jxl.jar

另一个博主的教程,按第一个就可以
https://blog.csdn.net/hwt1070359898/article/details/90517291

读取程序

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class ReadExcel {
    
    private static String TrainNum = "LG1102"; //列车车次号
    private static String QBID = "2464322"; //确保ID
    private static String[] TrainMarshalling = new String[11];
    public static void main(String[] args) throws BiffException, IOException {
    
        readExcel();
        for(String i : TrainMarshalling){
    
            System.out.println(i);
        }
    }
    private static void readExcel() throws BiffException, IOException {
    
        File xlsFile = new File("F:\\marshallingdirectory.xls");
        // 获得工作簿对象
        Workbook workbook = Workbook.getWorkbook(xlsFile);
        // 获得所有工作表
        Sheet[] sheets = workbook.getSheets();
        // 遍历工作表
        if (sheets != null) {
    
            for (Sheet sheet : sheets) {
    
                // 获得行数
                int rows = sheet.getRows();
                // 获得列数
                int cols = sheet.getColumns();
                // 读取数据
				for (int row = 0; row < rows; row++) {
    
	                  for (int col = 0; col < cols; col++) {
    
	                       Cell cell = sheet.getCell(col, row);
	                       System.out.println(cell.getContents());   //全部输出数据
	                  }
	            }
                for (int row = 0; row < rows; row++) {
    
                    Cell cell1 = sheet.getCell(0, row);
                    Cell cell2 = sheet.getCell(1, row);
                    //加入判断条件
                    if (cell1.getContents().equals(TrainNum) && cell2.getContents().equals(QBID)) {
    
                        for (int col = 0; col < cols; col++) {
    
                            Cell count = sheet.getCell(col, row);
                            //得到想要的数组,注意此时是String,可根据自己需要进行类型的替换
                            TrainMarshalling[col] = count.getContents();
                        }
                    }
                }
            }
        }
        workbook.close();
    }
}
写入Excel

二维数组

 // 导出到 excel的代码其实跟导出到 txt 的代码一样
    public void writeArrayToExcel(double[][] data, String string) {
    
        int rowNum = data.length;
        int columnNum = data[0].length;
        try {
    
            FileWriter fw = new FileWriter(string);
            for (int i = 0; i < rowNum; i++) {
    
                for (int j = 0; j < columnNum; j++)
                    fw.write(data[i][j] + "\t"); // tab 间隔
                fw.write("\n"); // 换行
            }
            fw.close();
        } catch (IOException e) {
    
            e.printStackTrace();
        }
    }

单列的

 //将单列数组写入Excel表中
    public static void writeListToExcel(List<Float> data, String string) {
    
        int rowNum = data.size();
        //int columnNum = data[0].length;
        try {
    
            FileWriter fw = new FileWriter(string);
            for (float datum : data) {
    
                //for (int j = 0; j < columnNum; j++)
                //fw.write(data[i][j] + "\t"); // tab 间隔
                fw.write(datum + "\t"); // tab 间隔
                fw.write("\n"); // 换行
            }
            fw.close();
        } catch (IOException e) {
    
            e.printStackTrace();
        }
    }
写入txt
public void writeArrayToTxt(double[][] data, String string) {
    
        int rowNum = data.length;
        int columnNum = data[0].length;
        try {
    
            FileWriter fw = new FileWriter(string);
            for (int i = 0; i < rowNum; i++) {
    
                for (int j = 0; j < columnNum; j++)
                    fw.write(data[i][j] + "\t");
                fw.write("\n");
            }
            fw.close();
        } catch (IOException e) {
    
            e.printStackTrace();
        }
    }

读txt

 public static String txt2String(File file) throws IOException {
    
        StringBuilder result = new StringBuilder();

            BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
            String s = null;
            while ((s = br.readLine()) != null) {
    //使用readLine方法,一次读一行
                result.append(System.lineSeparator()).append(s);
            }
            br.close();
        return result.toString();
    }

有些来自
Java读写Excel表格数据 - lishbo - 博客园 https://www.cnblogs.com/lishbo/p/9955993.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gan777777/article/details/121901489

智能推荐

adb shell uiautomator dump /doinf/uidumpa.xml 一切正常,就是没有显示这个文件。_adb shell uiautomator dump无效-程序员宅基地

文章浏览阅读1.2k次。返回的UI hierchary dumped to: /doinf/uidumpa.xml但是手机里就是没有这个文件。这是什么情况啊?_adb shell uiautomator dump无效

kaldi中声纹识别ivector模型_kaldi i-vector-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏24次。1.数据准备:无论使用kaldi来做语音识别还是说话人识别,第一步就是数据准备,对于说话人识别来说,需要准备的几个文件为wav.scp,utt2spk,spk2utt这三个文件。对应的格式如下: 1.1 wav.scp有两列,第一列是key,这个可以一定要唯一;第二列是 wav的路径wavpath; 1.2 utt2spk也有两列,第一列是key,与wav.scp的第一列一样;..._kaldi i-vector

2019-程序员宅基地

文章浏览阅读4.2k次。序言2019年好像没几天就要结束了,所以写个渣渣凑个数量,爱看的看看,不爱看的滑过。2019是猪队友的元年,所以总结为2个字就是炮灰。风言风语1 猪队友你..._office2019专业增强版激活

Git(五)常用命令精简整理_git bash命令-程序员宅基地

文章浏览阅读896次。全局设置git config --global user.name "acgkaka"git config --global user.email "[email protected]"初始化.git文件夹git init将当前文件夹连接到test远程仓库git remote add origin https://gitee.com/acgkaka/test.git将本地的当前分支推送到远程的master分支,同时指定origin为默认主机,(后面再使用git push的时候就可以不加任_git bash命令

spring boot2.0自定义注入mongoTemplate使用审计标签@EnableMongoAuditing报错_springboot2.0+mongotemplate-程序员宅基地

文章浏览阅读6k次。项目原来在spring boot1.5.9版本时候使用@EnableMongoAuditing用同样的方法注入并没有报错,当切换到2.0版本是莫名其妙的出问题了,搞的我一脸懵逼,花了好久都没解决,后来偶然看到我们公司一个大佬的自定义注入的的方式,瞬间感觉到了王者和青铜的差距。 下面是配置代码@Configuration@EnableMongoAuditing@PropertySourc..._springboot2.0+mongotemplate

【Electron-Vue】搭建Electron-Vue前端桌面应用_electron-vue文档-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏7次。最近准备写一个前端桌面应用,了解到了一个新的框架——Electron,它是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。接下来,我们就来搭建一个基于vue的electron应用吧。_electron-vue文档

随便推点

分治算法思想及应用_分治思想-程序员宅基地

文章浏览阅读3.8k次,点赞5次,收藏22次。一. 分治算法介绍1. 分治算法思想2. 分治算法适用条件3. 分治算法的引入二. 分治算法的应用1. 快速排序2. 快排划分函数求topk问题3. 归并排序4. 合并k个有序单链表5. 对数时间求中位数算法思想_分治思想

Linux|minio对象存储服务的部署和初步使用总结_linux部署minio-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏5次。minio是一个非常轻量化的对象存储服务,是可以算到云原生领域的。该服务是使用go语言编写的,因此,主文件就一个文件,它的下载,部署什么的都是非常简单的,一般两三步就可以搭建好了,只是有一些细节问题需要在部署使用的时候注意。本文将就一个可用的minio存储服务部署做一个尽量详细的讲解,并探讨如何将该技术落地_linux部署minio

MATLAB2018a与VS2015 C++编译包安装下载的心路历程与解决之道_matlab安装vs2015编译器-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏12次。前言:本着前人栽树后人乘凉的精神。感谢csdn朋友们所分享出来关于如何解决的安装方法,以我的下载安装的成功的经验来为困扰各位奉献一点力量。_matlab安装vs2015编译器

PL2586/USB2.0HUB工业级多口集线器扩展芯片|MA8601升级版_usb 扩展 芯片-程序员宅基地

文章浏览阅读355次。PL2586是旺玖新出的一款USB HUB 芯片PL2586是一项创新,它集成了符合USB-IF“电池充电规范修订版1.2”的功能,支持便携式设备的快速充电功能。此功能将PL2586转变为“通用充电解决方案”(UCS)兼容的基于电池的便携式设备的USB充电集线器,由GSMA推广。当在下游端口检测到符合B.C.标准的便携式设备时,PL2586中的专用端口可以处理充电请求。而且,在握手完成后,PL2586允许便携式设备达到900mA(高速);1.5A(低速/全速)来自充电下游端口(CDP)或1.5A来自_usb 扩展 芯片

本周直播预告|OCR打卡营12月21日(周二)起每晚八点半正式开讲!-程序员宅基地

文章浏览阅读109次。直播课表12月21日(周二)正式开讲!课程报名地址https://aistudio.baidu.com/aistudio/course/introduce/25207内容概览OCR方向万星...

管理心理--程序员如何选择职业赛道-程序员宅基地

文章浏览阅读2.1k次,点赞81次,收藏22次。当然,除非你创业,不然做不同类型的系统,对一个程序员来说,没啥不同,我带过的同学,有很多做着搜索引擎,突然转到游戏引擎,或其它基础架构组件的。一是了解软件运行的原理,知道系统薄弱点在哪,比如曾经一个下属在转为测试后,测试系统稳定性,必有一项:就是拿乱码去测试,看系统是否还能正常稳定地运行。很多系统将自己的稳定性,交给别人请求的合法性,这是不对的。但有编码经验的同学,在做运维实施,尤其是在客户现场,做一些私有化的安装部署时,面对系统的日志、模块的日志、配置,能更快、更专业地把问题定位出来。