`

用java代码编写的读取excel表格中数据的代码头

阅读更多

记得刚开始工作的时候,老总让我把excel表格中的数据写入到数据库里边,

当时还没接触到像Navicat for MySQL这样的工具,搞了一天终于用最笨的办法,在excel后加一个insert字段,然后采用批量处理的方法来写入数据库,当时有一个傻X很牛哄哄的跟我说,,用得着这么麻烦吗?我们都是写程序搞定的,当我问他要这种程序的时候,人家跟我说,网上一大堆,后来在工作中发现,此人纯属装B,现为大家写出读excel表格中数据的方法

大家可做适当的调整,然后就可以实现用程序的方法把excel表格存在数据库中了

同时提供一个支持jar包

代码如下

package com.demo.excel;
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExcelUtils {

	/**读取Excel文件的内容
	 * @param file  待读取的文件
	 * @return
	 */
	public static String readExcel(File file){
		StringBuffer sb = new StringBuffer();
		
		Workbook wb = null;
		try {
			//构造Workbook(工作薄)对象
			wb=Workbook.getWorkbook(file);
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		if(wb==null)
			return null;
		
		//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
		Sheet[] sheet = wb.getSheets();
		
		if(sheet!=null&&sheet.length>0){
			//对每个工作表进行循环
			for(int i=0;i<sheet.length;i++){
				//得到当前工作表的行数
				int rowNum = sheet[i].getRows();
				for(int j=0;j<rowNum;j++){
					//得到当前行的所有单元格
					Cell[] cells = sheet[i].getRow(j);
					if(cells!=null&&cells.length>0){
						//对每个单元格进行循环
						for(int k=0;k<cells.length;k++){
							//读取当前单元格的值,并输出,仅用于试验
							String cellValue = cells[k].getContents();
							System.out.println(cellValue);
							sb.append(cellValue+"\t");
						}
					}
					sb.append("\r\n");
				}
				sb.append("\r\n");
			}
		}
		//最后关闭资源,释放内存
		wb.close();
		return sb.toString();
	}
	/**生成一个Excel文件
	 * @param fileName  要生成的Excel文件名
	 */
	public static void writeExcel(String fileName){
		WritableWorkbook wwb = null;
		try {
			//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
			wwb = Workbook.createWorkbook(new File(fileName));
		} catch (IOException e) {
			e.printStackTrace();
		}
		if(wwb!=null){
			//创建一个可写入的工作表
			//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
			WritableSheet ws = wwb.createSheet("sheet1", 0);
			
			//下面开始添加单元格
			for(int i=0;i<10;i++){
				for(int j=0;j<5;j++){
					//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
					Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
					try {
						//将生成的单元格添加到工作表中
						ws.addCell(labelC);
					} catch (RowsExceededException e) {
						e.printStackTrace();
					} catch (WriteException e) {
						e.printStackTrace();
					}

				}
			}

			try {
				//从内存中写入文件中
				wwb.write();
				//关闭资源,释放内存
				wwb.close();
			} catch (IOException e) {
				e.printStackTrace();
			} catch (WriteException e) {
				e.printStackTrace();
			}
		}
	} 
	/**搜索某一个文件中是否包含某个关键字
	 * @param file  待搜索的文件
	 * @param keyWord  要搜索的关键字
	 * @return
	 */
	public static boolean searchKeyWord(File file,String keyWord){
		boolean res = false;
		
		Workbook wb = null;
		try {
			//构造Workbook(工作薄)对象
			wb=Workbook.getWorkbook(file);
		} catch (BiffException e) {
			return res;
		} catch (IOException e) {
			return res;
		}
		
		if(wb==null)
			return res;
		
		//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
		Sheet[] sheet = wb.getSheets();
		
		boolean breakSheet = false;
		
		if(sheet!=null&&sheet.length>0){
			//对每个工作表进行循环
			for(int i=0;i<sheet.length;i++){
				if(breakSheet)
					break;
				
				//得到当前工作表的行数
				int rowNum = sheet[i].getRows();
				
				boolean breakRow = false;
				
				for(int j=0;j<rowNum;j++){
					if(breakRow)
						break;
					//得到当前行的所有单元格
					Cell[] cells = sheet[i].getRow(j);
					if(cells!=null&&cells.length>0){
						boolean breakCell = false;
						//对每个单元格进行循环
						for(int k=0;k<cells.length;k++){
							if(breakCell)
								break;
							//读取当前单元格的值
							String cellValue = cells[k].getContents();
							if(cellValue==null)
								continue;
							if(cellValue.contains(keyWord)){
								res = true;
								breakCell = true;
								breakRow = true;
								breakSheet = true;
							}
						}
					}
				}
			}
		}
		//最后关闭资源,释放内存
		wb.close();
		
		return res;
	}
    /**往Excel中插入图片
     * @param dataSheet  待插入的工作表
     * @param col 图片从该列开始
     * @param row 图片从该行开始
     * @param width 图片所占的列数
     * @param height 图片所占的行数
     * @param imgFile 要插入的图片文件
     */
    public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
            int height, File imgFile){
    	WritableImage img = new WritableImage(col, row, width, height, imgFile);
    	dataSheet.addImage(img);
    } 
    
    
    public static void main(String[] args) {
    	 
    	try {
    		//创建一个工作薄
			WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
			//待插入的工作表
			WritableSheet imgSheet = workbook.createSheet("Images",0);
			//要插入的图片文件
			File imgFile = new File("D:/1.png");
			//图片插入到第二行第一个单元格,长宽各占六个单元格
			insertImg(imgSheet,0,1,6,6,imgFile);
			workbook.write();
			workbook.close();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (WriteException e) {
			e.printStackTrace();
		}    	
    } 
	
}

 以上代码可完全执行,不过前题是,你把支持的jar包加上,不然会报错,jar包己经上传了,

最不爽javaeye的就是下载东西非要注册,各位想学习的朋友可以去注册个javaeye帐号!

代码如有问题,请发送邮件至zhang7789@yahoo.com.cn

很多注释的说,你一定能看懂

  • jxl.jar (725.9 KB)
  • 下载次数: 142
分享到:
评论
2 楼 halov 2016-10-27  
注释很详细,赞赞赞赞赞
1 楼 贝塔ZQ 2016-09-02  
用插件啦,PageOffice顶

相关推荐

    java解析Excel文件并把数据存入数据库和导出数据为excel文件SpringBoot代码示例

    1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....

    Java读取Word中的表格(Excel),并导出文件为Excel

    在Java编程中,有时我们需要处理来自不同文档格式的数据,例如从Word文档中提取表格内容,并将其转换成Excel文件。这通常涉及到使用Apache POI库,一个强大的API,用于读写Microsoft Office格式的文件,包括Word(....

    利用java操作Excel表格(把Excel中的数据导入数据库中

    ### 利用Java操作Excel表格并将数据导入数据库 在现代软件开发中,处理电子表格文件(如Microsoft Excel)是一项常见的任务。特别是在企业级应用中,经常需要读取、写入Excel文件或将其中的数据批量导入数据库。...

    Java操作Excel表格

    当我们谈论“Java操作Excel表格”时,通常是指使用Java来读取、写入或处理Microsoft Excel文件,这在数据分析、报表生成或者数据交换等场景中非常常见。本主题将围绕Java如何与Excel交互进行深入探讨。 首先,Java...

    java解析excel并做数据有效性校验

    在实际项目中,可以封装一个工具类,包含读取Excel、数据校验等功能,这样可以使代码更加整洁,复用性更高。 9. **性能优化** 大量数据的读取可能导致内存消耗过大,因此可以考虑分批读取或使用SXSSF(Streaming ...

    JAVA读取Excel,建库建表,并生成java实体

    在Java开发中,读取Excel数据并利用这些数据进行数据库建库建表以及生成Java实体类是一项常见的任务,尤其在数据导入、数据处理或者自动化测试等场景中。本篇文章将详细探讨如何使用Java来实现这一过程。 首先,...

    JAVA实现的EXCEL表格导入数据录入

    在Java编程环境中,实现Excel表格的数据导入是一项常见的任务,尤其在数据处理、分析或系统集成时。本项目涉及的关键知识点包括数据库连接、操作数据库、导入Excel表格、界面设计以及进度条显示,这些都是Java开发中...

    直接读取Excel文件数据

    标题中的“直接读取Excel文件数据”指的是在Visual C++(简称VC)环境下,通过编程方式访问并解析Excel文件中的内容。通常,这涉及到使用Microsoft Office的自动化接口,如Microsoft Excel Object Library,或者使用...

    基于ArcGIS Engine的Excel表格数据导入为Shp数据

    1. **读取Excel数据**:首先,我们需要使用ArcGIS Engine中的`GeodatabaseFeatureClass`类或其他相关的数据读取组件,加载Excel文件中的表格数据。这通常涉及到对Excel文件的解析,获取到包含坐标信息的列。 2. **...

    Java读取Excel

    在Java编程环境中,读取Excel文件是一项常见的任务,特别是在数据处理和分析的场景下。Excel文件通常用于存储和管理结构化的表格数据,而Java提供了一些库来帮助我们方便地访问这些数据。本篇将深入探讨如何使用Java...

    Android应用源码之安卓读取Excel文件获取表格数据-IT计算机-毕业设计.zip

    5. **异步处理**:由于读取Excel文件可能会消耗大量资源和时间,为避免阻塞UI线程,开发者可能使用了Android的AsyncTask或者Handler/Looper机制来执行文件读取操作。 6. **数据解析与显示**:读取到Excel文件后,...

    Java web 数据库数据与excel表格形式导入导出.docx

    Java Web 数据库数据与 Excel 表格形式导入导出是指通过 Java Web 应用程序将数据库数据导入到 Excel 表格中,并实现数据的导出。该技术主要利用了 JXL(Java Excel API)和 POI(Apache POI)技术来实现数据的导入...

    java导出Excel表格实例

    在本文档中,我们将详细介绍如何使用Java编写程序,将数据库中的数据以Excel表格的形式导出。这是通过操作Excel文件对象模型以及Java的数据库操作技术实现的。为了更好地理解本文所包含的知识点,需要掌握Java语言...

    java实现JSP表格数据导出到EXCEL文件

    在Java编程环境中,将JSP表格中的数据导出到Excel文件是一种常见的需求,尤其是在数据分析、报表生成和数据交换等场景中。本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术包括Java Servlet、JSP以及...

    JAVA遍历EXCEL表格

    2. **IDE选择**:推荐使用Eclipse或IntelliJ IDEA等集成开发环境,便于代码编写和调试。 3. **添加jxl库**:通过Maven或直接下载jar包的方式,在项目中引入`jxl.jar`文件。 #### 三、读取Excel文件 ```java import...

    C++读取 excel 完整程序源代码

    在给定的标题“C++读取Excel完整程序源代码”和描述中,我们可以推断这是一个关于如何在C++中读取Excel文件(可能是xls格式,适用于Excel 2003及以下版本)的示例代码资源。在这个场景下,我们将探讨几种常见的方法...

    springboot将excel存入mysqldemo

    本示例“springboot将excel存入mysqldemo”是关于如何使用Spring Boot来读取Excel数据并将其存储到MySQL数据库中的实践教程。下面我们将详细探讨涉及的关键知识点。 1. **Spring Boot集成MyBatis**: - Spring ...

    读取EXCEL Demo&Servlet DEMO

    在IT行业中,处理数据是常见的任务之一,而Excel作为广泛使用的电子表格软件,其数据读取和处理功能在各种业务场景中尤为重要。本项目“读取Excel Demo&Servlet Demo”提供了一个实例,演示了如何利用Java技术栈实现...

    应用源码之安卓读取Excel文件获取表格数据.zip

    本资源"应用源码之安卓读取Excel文件获取表格数据.zip"提供了一种方法来实现这一功能,主要适用于那些正在做JAVA ANDROID毕业设计或者希望深入代码学习的开发者。通过这个压缩包,你可以学习如何在Android应用中读取...

    java实现删除excel内容之间空行

    本篇文章将详细介绍如何使用 Java 实现删除 Excel 文件中的空行,这对于提高数据处理效率具有重要意义。 #### 一、准备工作 在开始编写代码之前,我们需要准备以下环境: - **Java 开发环境**:确保已经安装了 JDK ...

Global site tag (gtag.js) - Google Analytics