⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readexcel.java

📁 是mysql数据库数据导入程序是从excel中提取数据导入到mysql数据库中
💻 JAVA
字号:
package com.read;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.FileInputStream;
import java.io.InputStream;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

import com.conn.ConnDb;

public class ReadExcel extends JFrame implements MouseListener 
{

	private JButton jb1 = new JButton("浏览");
	private JButton jb2 = new JButton("读取");
	private JTextField jtf = new JTextField(30);
	private JList jl = new JList();	
	private JFileChooser jfc = new JFileChooser();
	
	//显示界面
	public void read()
	{
		JPanel jp = new JPanel();
		jp.add(jtf);
		String[] str = {"请选择你的Excel表"};
		jl.setListData(str);
		jl.setVisibleRowCount(1);
		JScrollPane jsp = new JScrollPane(jl);
		jp.add(jsp);
		jp.add(jb1);
		jp.add(jb2);
		this.add(jp);
		this.pack();
		this.setVisible(true);
		
		jb1.addMouseListener(this);
		jb2.addMouseListener(this);
	}
	/*
	 * 读取要导入数据的excel
	 * 参数 path 得到excel的文件路径
	 */
	public void find(String path)
	{
		
		try {
			InputStream is = new FileInputStream(path);//写入到FileInputStream
			Workbook wb = Workbook.getWorkbook(is); //得到工作薄
			int num = wb.getNumberOfSheets();//得到工作表的数量
			String[] name = wb.getSheetNames();//读取工作表的名称
			Sheet st = wb.getSheet(9);//得到要导入的工作表
			int rsConm = st.getColumns();//得到excel的列数
			
			int rsRows = st.getRows(); //得到excel的总行数
			for(int i = 0;i<rsRows;i++)
			{
				Cell cell1 = st.getCell(0,i);//获得第四列的值
				String str1 = "8_"+cell1.getRow();
				int rsRow = cell1.getRow(); 
				String str2 = cell1.getContents();
				find(path,str1,str2,9,rsRow);//调用find()方法
			}
			
		} catch (Exception e) {
			System.out.println(e+"333333333");
			// TODO: handle exception
		}
	}
	/*
	 * 读取管理表中的数据
	 * 参数path 得到excel文件的路径
	 * 参数str1 得到传过来的行数
	 * 参数str2 得到传过来的列的内容
	 */
	public void find(String path ,String str1,String str2 ,int sheet,int Row)
	{
		try {
			InputStream is = new FileInputStream(path);//写入到FileInputStream
			Workbook wb = Workbook.getWorkbook(is); //得到工作薄
			Sheet st = wb.getSheet(0);//得到工作薄中的第一个工作表
			int rsRows = st.getRows(); //得到excel的总行数
			for(int j = 0;j<rsRows;j++)
			{
				Cell cell1 = st.getCell(3,j);//获得第四列的值
				Cell cell2 = st.getCell(0,j);//获得第一列的值
				
				if(cell1.getContents().trim().toString()!="")
				{
					if(cell1.getContents().equals(str1))
					{
						//System.out.println(cell1.getContents()+"   匹配成功   "+str1+"    "+"所对应的第一列为 "+cell2.getRow()+" 行");
						getDate(path,sheet,Row,1,cell2.getContents()+1);//获取第2列的数据
						//System.out.println(cell1.getContents()+"   匹配成功   "+str1+"    "+"所对应的第一列为 "+cell2.getRow()+" 行");
						getDate(path,sheet,Row,2,cell2.getContents()+1);//获取第3列的数据
						//break;
					}
				}
			}
			wb.close();//关闭工作薄
			is.close();//关闭输入流
		}
		catch (Exception e) {
			System.out.println(e+"22222222222");
		}
	}

	/*
	 * 得到数据方法
	 * 参数sheet 第几个工作表
	 * 参数rsCol 第几列
	 * 参数rsRow 第几行
	 */
	public void getDate(String path,int sheet,int rsCol,int rsRow,String Row)
	{
		
		try {
			
			InputStream is = new FileInputStream(path);//写入到FileInputStream
			Workbook wb = Workbook.getWorkbook(is); //得到工作薄
			int num = wb.getNumberOfSheets();//得到工作表的数量
			String[] name = wb.getSheetNames();//读取工作表的名称
			Sheet st = wb.getSheet(sheet);//得到要导入的工作表

			Cell cell1 = st.getCell(rsRow,rsCol-1);//获得第四列的值
			String str1 = cell1.getContents();//获去列的数据
			System.out.println(str1+"  所在的行为  "+Row);
			wb.close();//关闭工作薄
			is.close();//关闭输入流
			
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
	}
	/*
	 * 为JList赋值
	 */
	public void fuzhi(String path)
	{
		try {
			InputStream is = new FileInputStream(path);//写入到FileInputStream
			Workbook wb = Workbook.getWorkbook(is); //得到工作薄
			String[] name = wb.getSheetNames();//读取工作表的名称
			jl.setListData(name);//为JList赋值
		}
		catch(Exception e) {
			//e.printStackTrace();
			System.out.println(e+"11111111");
		}
	}
	
	public void mouseClicked(MouseEvent e)
	{
		if(e.getSource() == jb1)
		{
			jfc.setToolTipText("打开");
			int r = jfc.showOpenDialog(this);
			String path = null;
			if (r == JFileChooser.APPROVE_OPTION) 
			{
				path = jfc.getSelectedFile().getAbsolutePath();//得到文件的路
				jtf.setText(path);
				fuzhi(path);
			}
		}
		if(e.getSource() == jb2)
		{
			find(jtf.getText());
		}
	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -