`

Excel导入导出神器:JXL:POI

 
阅读更多
最近在工作开中,经常遇到项目中需要进行对表格的数据进行导入导出,我试着写了一个类,包含了导入导出的一些具体方法。废话不多说,上代码:


import java.awt.List;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.Iterator;

import javax.imageio.stream.FileImageInputStream;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.filechooser.FileFilter;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.sun.rowset.internal.InsertRow;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExportAndImportUtil {

	/**
	 * @param args
	 * @throws IOException
	 */
	static int num = 0;
	private JTable table;
	public static void main(String[] args) throws IOException, Exception {
		ExportAndImportUtil util= new ExportAndImportUtil();
//		util.exportData();
		util.importData();
	}

	/**
	 * @desc 导出数据
	 * @author 张兴旺
	 * @date 2012-12-15
	 */
	public void exportData() throws Exception {
		// 打开或者生成一个文件
		WritableWorkbook wwb = Workbook.createWorkbook(new File("何永东" + num
				+ ".xls"));

		// 生成xls工作表所在的页,一般设置成第一页
		WritableSheet ws = wwb.createSheet("那些事", 0);

		// 设置字段字体
		WritableFont fontSet = new WritableFont(WritableFont.createFont("黑体"),
				10, WritableFont.BOLD);

		// 设置格式剧中
		WritableCellFormat des = new WritableCellFormat(fontSet);
		// 设置字段格式
		des.setAlignment(Alignment.CENTRE);

		ArrayList list = new ArrayList();
		list.add("单号");
		list.add("收货部门");
		list.add("收货时间");
		list.add("预配航班号");
		list.add("件数");
		for (int i = 0; i < list.size(); i++) {
			String columnAlias = (String) list.get(i);
			Label lb = new Label(i, 0, columnAlias, des);

			// 增加每列
			ws.addCell(lb);
		}
		
		//你好,这里可以从后台数据库得到数据进行导出,也可以从界面表格中导出,我这里为了得到效果,值建立好一个空的Jtable
		//如需得到数据库的数据,以jdbc操作为例:
		//PreparedStatement ps = null;
		//ResultSetMetaData rsmd = ps.getMetaData()
		for(int k=0;k<this.table.getRowCount();k++){
			String columnValue = "";
			for(int i=0;i<list.size();i++){
				columnValue = (String) this.table.getCellEditor(k, i).getCellEditorValue();
				Label lf = new Label(i, k+1, columnValue, des);
				ws.addCell(lf);
			}
		}
		wwb.write();
		Runtime rt = Runtime.getRuntime();
		try {
			String[] command = {"explorer","何永东" + num+ ".xls"};
			rt.exec(command);
		} catch (Exception e) {
			// TODO: handle exception
		}finally{
			wwb.close();
		}
		num++;
	}
	
	static File file = null;
	public void importData(){
		JFileChooser fileChooser = new JFileChooser();
		FileFilter fileFilter = new FileFilter(){

			@Override
			public boolean accept(File f) {
				String fileName = f.getName().toLowerCase();
				boolean result = f.isDirectory() || fileName.endsWith(".xls");
				return result;
			}

			@Override
			public String getDescription() {
				return "Excel文档(*.xls)";
			}
		};
		fileChooser.setFileFilter(fileFilter);
		fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
		int returnVal = fileChooser.showOpenDialog(null);
		if(returnVal ==JFileChooser.APPROVE_OPTION){
			file = fileChooser.getSelectedFile().getAbsoluteFile();
			if(!(file.getName().endsWith(".xls"))){
				JOptionPane.showMessageDialog(null, "该文件不是正确的xls文件", "温馨提示", JOptionPane.PLAIN_MESSAGE);
				return;
			}
		}
		
	}
	
	public void readExcel(File file) {
		ArrayList numberList = new ArrayList();
		try {
			HSSFWorkbook  hSSFWorkbook = new HSSFWorkbook(new FileInputStream(file));
			HSSFSheet sheet = hSSFWorkbook.getSheetAt(0);
			HSSFRow row = null;
			for(int j = 0;j<sheet.getLastRowNum();j++){
				row = sheet.getRow(j);
				String num = row.getCell(0).getStringCellValue();
				String name = row.getCell(1).getStringCellValue();
				ArrayList list = new ArrayList();
				list.add(0, num);
				list.add(1, name);
				numberList.add(list);
			}
		} catch (Exception e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "该文件不是正确的xls文件", "温馨提示", JOptionPane.PLAIN_MESSAGE);
			return;
		}
		
		insertDataToTable(numberList);
	}

	private void insertDataToTable(ArrayList numberList) {
		Iterator it = numberList.iterator();
		while(it.hasNext()){
			//导入数据到表格,说实话,这个我试了好多,都没能实现,好惨
//			table.add
			
		}
	}

}

其中,jxl和poijar包在网上可以下载,在此不贴出来了哈
分享到:
评论

相关推荐

    JXL、POI实现Excel导入导出

    以上就是关于使用JXL和Apache POI实现Excel导入导出的基本知识。根据实际需求,你可以结合这两个库的功能,灵活地处理各种Excel文件操作。在实际项目中,通常会根据性能、功能需求以及文件兼容性等因素选择适合的库...

    Excel导入导出 jxl及Poi 工具类

    为了更好地理解这两个库的用法,你可以查看提供的"Excel导入导出(jxl及Poi)工具类"压缩包中的示例代码。通过阅读和运行这些代码,你可以更深入地了解如何在实际项目中应用jxl和Apache POI。 总的来说,jxl和Apache ...

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件...通过正确理解和使用POI库,你可以轻松地实现数据的导入导出,提升工作效率。记得在项目中引入正确的jar包,以确保所有功能的正常运行。

    NoClassDefFoundError: jxl/WorkbookSettings

    标题 "NoClassDefFoundError: jxl/WorkbookSettings" ...在进一步研究标签“源码”和“工具”时,可以深入学习JExcelApi的源代码,理解其内部实现,也可以探索其他替代工具,如Apache POI,以提升处理Excel文件的能力。

    struts2导出excel java 导出excel JXL

    struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包

    java开发Excel所需 poi jxl两种jar包

    在Java开发中,处理Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景下。本文将深入探讨两种常用的Java库:Apache POI和JXL,它们都提供了处理Excel文件的能力。 Apache POI是Apache...

    java实现excel导入导出.pdf

    在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...

    poiEXcel导入导出操作架包

    在标题提到的"poiExcel导入导出操作架包"中,Apache POI的核心功能是支持对Excel文件的读取和写入操作,这对于在Java应用程序中进行数据导入和导出非常有用。下面我们将深入探讨Apache POI在Excel导入导出方面的应用...

    Excel生成导出JXL和POI两种方式小demo

    提供的压缩包文件"excel导出"可能包含了使用JXL和POI生成Excel的示例代码,通过查看这些代码,你可以更好地理解如何在实际项目中应用这两个库。 总结来说,JXL和Apache POI都是Java中用于处理Excel的强大工具,各...

    jxl 实现excel导入导出

    在本文中,我们将深入探讨`jxl`库如何帮助开发者实现Excel的导入和导出功能。 首先,我们需要理解`jxl`库的基本结构和核心概念。`jxl`库主要包含以下几个关键类: 1. `Workbook`:这个类代表一个Excel工作簿,相当...

    java使用jxl进行Excel导入导出

    Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...

    Android数据转化为Excel表格导入导出,利用jxl.jar

    本文将深入探讨如何使用jxl.jar在Android中实现数据的Excel导入导出功能。 首先,你需要在项目中添加jxl.jar库。将该库文件放入项目的`libs`目录,并在`build.gradle`文件中进行配置,确保在构建过程中将其打包进...

    导入/导出excel jxl.jar

    "导入/导出Excel jxl.jar"是使用JExcelApi(通常简称为JXL)库的一个示例,这是一个开源Java库,允许开发者读取、写入和修改Excel文件。JXL.jar文件就是这个库的实现,它包含了所有必要的类和方法,使得开发者可以...

    SpringBoot整合poi实现Excel文件的导入和导出.pdf

    下面我们将详细介绍如何在SpringBoot中整合POI来实现Excel的导入和导出,以及如何利用ExcelFormatUtil工具类进行单元格数据格式的判断。 首先,我们需要在项目的pom.xml文件中引入Apache POI的相关依赖,具体如下:...

    EXCEL导入导出demo

    本示例"EXCEL导入导出demo"聚焦于如何利用Java的一个库——jxl,来实现JSP(Java Server Pages)对Excel文件的导入与导出功能。这个功能对于Web应用程序来说极其实用,它允许用户通过浏览器上传Excel文件进行处理,...

    jxl.jar包(java导入导出Excel文件)

    在Java编程中,处理Excel文件是一项常见的任务,尤其在数据导入导出、报表生成或数据分析等场景下。jxl.jar是一个专门为Java设计的库,它允许开发者轻松地读取、写入和修改Excel文件。这个库的功能强大,覆盖了从...

    JAVA中excel导入导出通用方法

    JAVA中excel导入导出通用方法 JAVA 中 excel 导入导出通用方法是指在 Java 项目中实现 excel 文件的导入和导出功能。这种方法可以应用于各种需要 excel 文件交互的业务场景中。 一、引入依赖 在 Java 项目中想要...

    Excel2003导出工具包jxl.jar

    Excel2003导出工具jxl.jar包,版本虽有点老,但还能用。

    java_jxl导入导出

    1. **数据导入导出**:在企业级应用中,JXL常用于从Excel文件批量导入数据,例如用户信息、订单数据等,或者导出查询结果到Excel供用户下载。 2. **报表生成**:利用JXL可以快速生成定制化的报表,包括表格、图表等...

    java操作excel——jxl和poi比较

    在Java编程领域,处理Excel文件是一项常见的任务,用于数据导入导出、数据分析或者报表生成等。本文将对比两种主流的Java Excel处理库:jxl和Apache POI,并探讨它们的特性和适用场景。 首先,jxl是较早的Java ...

Global site tag (gtag.js) - Google Analytics