栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java读取excel文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java读取excel文件

java接入excel文件

最近有一个需求,java程序接入excel文件,并读取其中内容,先将调查过程记录如下。

```java
package learning01;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.apache.poi.ss.usermodel.CellType;

public class CountUserServer extends Jframe {
	private JButton btn;

	private JPanel contentPane; // 内容面板

	private JTextField textField; // 文本框

	public CountUserServer() {
		setTitle("选择文件"); // 设置窗体的标题

		setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); // 设置窗体退出时操作

		setBounds(100, 100, 800, 400); // 设置窗体位置和大小

		contentPane = new JPanel(); // 创建内容面板

		contentPane.setBorder(new EmptyBorder(100, 5, 5, 5)); // 设置面板的边框

		contentPane.setLayout(new BorderLayout(0, 0)); // 设置内容面板为边界布局

		setContentPane(contentPane); // 应用内容面板

		JPanel panel1 = new JPanel(); // 新建面板用于保存文本框

		panel1.setBounds(5, 100, 800, 100);

		contentPane.add(panel1, BorderLayout.NORTH); // 将面板放置在边界布局的北部

		textField = new JTextField(); // 新建文本框

		panel1.add(textField); // 将文本框增加到面板中

		textField.setPreferredSize(new Dimension(400, 40));

		final JButton btn = new JButton("选择文件");

		btn.setPreferredSize(new Dimension(100, 40));

		panel1.add(btn);

		btn.setBackground(Color.GREEN);

		JPanel panel2 = new JPanel(); // 新建面板用于保存按钮

		contentPane.add(panel2, BorderLayout.CENTER); // 将面板放置在边界布局的中央

		JButton okBtn = new JButton("确定");

		okBtn.setPreferredSize(new Dimension(100, 40));

		panel2.add(okBtn);

		setVisible(true);

		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// 按钮点击事件

				JFileChooser chooser = new JFileChooser(); // 设置选择器

				//chooser.setMultiSelectionEnabled(true); // 设为多选

				int returnVal = chooser.showOpenDialog(btn); // 是否打开文件选择框

				System.out.println("returnVal=" + returnVal);

				if (returnVal == JFileChooser.APPROVE_OPTION) { // 如果符合文件类型

					String filepath = chooser.getSelectedFile().getAbsolutePath(); // 获取绝对路径

					System.out.println(filepath);

					textField.setText(filepath);

				}

			}

		});

		

		okBtn.addActionListener(new ActionListener() {
			@Override

			public void actionPerformed(ActionEvent e) {
				String filepath = textField.getText();

				if ("".equals(filepath) || filepath == null) {
					JOptionPane.showMessageDialog(getContentPane(), "请先选择文件~",

							"警告", JOptionPane.WARNING_MESSAGE);

					return;

				}

				String suffix = filepath.substring(filepath.lastIndexOf(".") + 1);

				System.out.println(suffix);

				if (!(suffix.equals("xlsx") || (suffix.equals("xls")))) {
					JOptionPane.showMessageDialog(getContentPane(), "请选择Excel文件~",

							"警告", JOptionPane.WARNING_MESSAGE);

					return;

				}

				

				try {
					openFile(filepath);

				} catch (Exception e1) {
					e1.printStackTrace();

				}

			}

		});

	}
	
	public void openFile(String filepath) throws IOException {
		FileInputStream fileInputStream = new FileInputStream(new File(filepath));

		XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);

		XSSFSheet sheet = workbook.getSheetAt(0);
	
		
		System.out.println(sheet.getLastRowNum());

		queryRows(workbook,"平静");

		}

	public static boolean isRowEmpty(Row row){
	       
        for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
            Cell cell = row.getCell(i);
            if (cell != null && cell.getCellType() != CellType.BLANK){
             
                return false;
            }else {
      
        break;
        }
        }
        return true;
  }

	

	

	public java.util.List queryRows(XSSFWorkbook workbook, String keys){
	List list=new ArrayList<>();

	XSSFSheet sheet = workbook.getSheetAt(0);
	
	
	for(int i=2;i<=sheet.getLastRowNum();i++){	
	System.out.print(sheet.getRow(i).getCell(0).getStringCellValue()+",");
	System.out.print(sheet.getRow(i).getCell(1).getStringCellValue()+",");
	System.out.print(sheet.getRow(i).getCell(2).getStringCellValue()+",");
	System.out.println(sheet.getRow(i).getCell(3).getStringCellValue());
	if(sheet.getRow(i).getCell(0).getStringCellValue().contains(keys)){
	list.add(sheet.getRow(i));

	}

	}

	return list;

	}

	public static void main(String[] args) {
		new CountUserServer();

	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号