Excel 表格数据筛选操作

import csv
from tkinter.filedialog import askopenfilename
import tkinter as tk
import xlrd


'''
# 打开对话框 Tkinter
# 获取文件路径
# 安装python官方Excel库--xlrd
# 获取Excel文件位置并读取
# 读取sheet表
# 读取指定rows内容
# Excel文件作为被筛选文件,
# csv文件作为筛选条件

'''

root = tk.Tk()
root.withdraw()
# 打开文件获取路径
excel_path = askopenfilename
在 Java 中实现 Excel 表格数据筛选可以借助 Java POI 组件或 EasyExcel 库。以下是使用这两种方式实现筛选的示例: ### 使用 Java POI 组件筛选数据 Java POI 是一个用于操作 Microsoft Office 格式文件的 Java 库。以下是一个使用 Java POI 读取 Excel 文件并筛选数据的示例代码: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; public class ExcelFilterPOI { public static void main(String[] args) { try (FileInputStream fis = new FileInputStream("path/to/your/excel.xlsx"); Workbook workbook = new XSSFWorkbook(fis)) { Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { Cell cell = row.getCell(0); // 假设筛选第一列的数据 if (cell != null && cell.getCellType() == CellType.STRING) { String value = cell.getStringCellValue(); if (value.contains("筛选条件")) { for (Cell c : row) { System.out.print(c + " "); } System.out.println(); } } } } catch (IOException e) { e.printStackTrace(); } } } ``` 上述代码通过 Java POI 读取 Excel 文件,然后遍历每一行,检查第一列的数据是否包含指定的筛选条件,如果包含则输出该行数据。 ### 使用 EasyExcel 筛选数据 EasyExcel 是阿里巴巴开源的一个处理 Excel 的工具,使用起来更加简洁。以下是一个使用 EasyExcel 筛选数据的示例代码: ```java import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import java.util.ArrayList; import java.util.List; // 定义 Excel 数据实体类 class ExcelData { private String column1; private String column2; // 其他列... public String getColumn1() { return column1; } public void setColumn1(String column1) { this.column1 = column1; } public String getColumn2() { return column2; } public void setColumn2(String column2) { this.column2 = column2; } } // 自定义监听器 class ExcelListener extends AnalysisEventListener<ExcelData> { private List<ExcelData> filteredData = new ArrayList<>(); @Override public void invoke(ExcelData data, AnalysisContext context) { if (data.getColumn1().contains("筛选条件")) { filteredData.add(data); } } @Override public void doAfterAllAnalysed(AnalysisContext context) { for (ExcelData data : filteredData) { System.out.println(data.getColumn1() + " " + data.getColumn2()); } } public List<ExcelData> getFilteredData() { return filteredData; } } public class ExcelFilterEasyExcel { public static void main(String[] args) { ExcelListener listener = new ExcelListener(); EasyExcel.read("path/to/your/excel.xlsx", ExcelData.class, listener).sheet().doRead(); } } ``` 上述代码通过 EasyExcel 读取 Excel 文件,使用自定义的监听器在读取每一行数据时进行筛选,将符合条件的数据添加到 `filteredData` 列表中,最后输出筛选后的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值