`
wl296784423
  • 浏览: 508 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

JXL读写excel

阅读更多

 

package com.wangl.util;


import java.io.File;

import java.util.List;

import java.util.Map;


import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;


public class ExcelUtil {


/**

* @param filePath 文件全路径+文件名

* @param columnKey 列的key对应数据的key

* @param columnValue  列名

* @param dataList 数据集

* @param columnWidth 列宽

* @param pageSum 分页每页数量

* @return

*/

public static boolean createExcel(String filePath, String[] columnKey, String[] columnValue,

List> dataList, int columnWidth, int pageSum) {


if (null == dataList || null == filePath || null == columnKey || null == columnValue) {

return false;

}

WritableWorkbook book = null;

try {

// 数据行数

int dataSize = dataList.size();

// 每五万为一个sheet页,总sheet页数

int sheetsize = (dataSize / pageSum) == 0 ? 1 : (dataSize % pageSum > 0 ? (dataSize / pageSum + 1)

: dataSize / pageSum);

book = Workbook.createWorkbook(new File(filePath));

// 生成名为“第一页”的工作表,参数0表示这是第一页

WritableSheet sheet = null;


// 循环sheet页

for (int sheetIndex = 1; sheetIndex sheet = book.createSheet(" 第" + sheetIndex + "页  ", sheetIndex - 1);

// 生成标题

createTitle(sheet, columnValue, columnWidth);

// 行数

int count = getColumnCount(pageSum, dataSize, sheetsize, sheetIndex);

// 生成行数据

creatClumnData(columnKey, dataList, pageSum, sheet, sheetIndex, count);

}

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

try {

book.write();

book.close();

} catch (Exception e) {

e.printStackTrace();

}


}

return true;

}


/**

* 生成行数据

* @param columnKey 列的key

* @param dataList 数据集合

* @param pageSum 分页数

* @param sheet sheet对象

* @param sheetIndex sheet页序号

* @param count 行数

* @throws Exception

*/

private static void creatClumnData(String[] columnKey, List> dataList, int pageSum,

WritableSheet sheet, int sheetIndex, int count) throws Exception {

// 生数据行

for (int i = 0; i Label column = null;

// 生成数据列

for (int j = 0, size = columnKey.length; j // 设置单元格

WritableCellFormat format1 = new WritableCellFormat();

// 水平居左

format1.setAlignment(jxl.format.Alignment.LEFT);

// 数据序号

int dataIndex = pageSum * (sheetIndex - 1) + i;

// 列 行 数据 单元格样式

column = new Label(j, (i + 1), dataList.get(dataIndex).get(columnKey[j]) == null ? ""

: dataList.get(dataIndex).get(columnKey[j]).toString(), format1);

// 行数据生成

sheet.addCell(column);

}

}

}


/**

* 获取行数

* 

* @param pageSum 总页数

* @param dataSize  数据总数

* @param sheetsize sheet总数

* @param sheetIndex sheet页序号

* @return

*/

private static int getColumnCount(int pageSum, int dataSize, int sheetsize, int sheetIndex) {

int count = 0;

// 行数量

if (sheetsize == 1) {

count = dataSize;

}

else if (sheetsize == sheetIndex && sheetsize != 1) {

count = dataSize - pageSum * (sheetsize - 1);

}

else {

count = pageSum;

}

return count;

}


/**

* 生成sheet页的标题

* 

* @param sheet sheet页对象

* @param columnKey 列的key

* @param columnValue 列名

* @param columnWidth 列宽

* @throws Exception

*/

public static void createTitle(WritableSheet sheet, String[] columnValue, int columnWidth)

throws Exception {

// 生成标题行

Label title = null;

for (int i = 0, count = columnValue.length; i // 字体处理start 字体名称,字号,样式

WritableFont font1 = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD);

WritableCellFormat format1 = new WritableCellFormat(font1);

// 水平居中

format1.setAlignment(jxl.format.Alignment.CENTRE);

// 把垂直对齐方式指定为居中

format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

// end

// 设置宽度i:哪列,columnWidth:宽度

sheet.setColumnView(i, columnWidth);


title = new Label(i, 0, columnValue[i], format1);

sheet.addCell(title);

}

}


}

 测试写excel:

 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.wangl.util.ExcelUtil;

// 生成Excel的类 
public class CreateExcel {
	public static void main(String args[]) {
		Long startTime = System.currentTimeMillis();
		String filePath = "D:\\批量卡信息详单.xls";
		String[] columnKey = { "id", "password" };
		String[] columnValue = { "卡号", "卡密码" };
		int cardSum = 100000;
		List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>();
		Map<String, Object> param = null;
		for(int i=0;i<cardSum;i++){
			param = new HashMap<String, Object>();
			param.put("id", "20121102-"+(i+1));
			param.put("password", "password-"+(i+1));
			dataList.add(param);
		}
		Long dataEnd = System.currentTimeMillis();
		// TODO
		System.out.println("数据用时"+(dataEnd - startTime) );
		// 生成
		ExcelUtil.createExcel(filePath, columnKey, columnValue, dataList, 20, 50000);
		Long endTime = System.currentTimeMillis();
		
		// 时间
		System.out.println("生成excel用时:"+(endTime-dataEnd));
	}
}

测试读取excel

package com.wangl.test;

import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ReadExcel {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws BiffException 
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		String filePath = "D:\\批量卡信息详单.xls";
		Workbook book = Workbook.getWorkbook(new File(filePath));
		Sheet[] sheetArray = book.getSheets();
		for(int i=0,count=sheetArray.length;i<count;i++){
			int rows = sheetArray[i].getRows();
			int columns = sheetArray[i].getColumns();
			System.out.println("第"+(i+1)+"页 ,,,行:"+rows+"列:"+columns);
			for(int rowIndex = 0;rowIndex<rows;rowIndex++){
				for(int columnIndex = 0;columnIndex<columns;columnIndex++){
					Cell cell = sheetArray[i].getCell(columnIndex, rowIndex);
					System.out.print("     "+cell.getContents());
				}
				System.out.println();
			}
		}
	}

}
  • jxl.jar (708.7 KB)
  • 下载次数: 0
分享到:
评论

相关推荐

    JXL读写Excel小例子

    读取Excel文件同样简单。以下代码演示了如何打开一个已存在的Excel文件并读取其内容: ```java import jxl.Workbook; import jxl.Sheet; import jxl.Cell; import jxl.read.biff.BiffException; import java.io....

    JXL读写EXCEL示例

    读取Excel文件: 1. 创建一个`Workbook`对象:这是JXL中的核心类,代表整个Excel工作簿。你可以通过`Workbook.getWorkbook(File)`方法打开一个现有的Excel文件。 ```java File excelFile = new File("path_to_your_...

    JXL 读取EXCEL

    标题 "JXL 读取EXCEL" 涉及到的是使用Java Excel Library(简称JXL)这个开源库来处理Microsoft Excel文件。JXL是一个强大的工具,它允许开发者在Java程序中读取、写入和修改Excel文件。下面将详细介绍JXL库以及如何...

    jxl读写excel数据,输出图片

    使用JXL,我们可以读取Excel文件中的数据,包括文本、数字、日期等。以下是一个简单的示例,展示如何读取Excel文件: ```java WritableWorkbook workbook = Workbook.getWorkbook(new File("input.xls")); Sheet ...

    jxl读取Excel文件

    NULL 博文链接:https://zhouyq.iteye.com/blog/272883

    JXL读写Excel例子demo

    在"JXL读写Excel例子demo"中,我们将探讨如何利用JXL库来处理Excel数据。这个示例程序包含了一个名为"Jxl读写Excel例子demo.jxl.jar"的库文件,它是JXL库的实现,可以集成到Java项目中以处理Excel文件。 JXL库提供...

    ExcelDemo_Excel导出_下载_POI读excel_JXL读写excel_java读写excel_列宽_读取合并或拆分单元格内容

    以下是一个使用JXL读取Excel文件的示例: ```java import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write....

    JXL读写Excel源码

    在Android开发中,JXL可以帮助我们创建、更新或读取Excel文件,这对于数据存储、报告生成或测试自动化等场景非常有用。 在描述中提到,由于作者正在从事安卓测试工作,所以回顾并使用了JXL。尽管Android原生并不...

    使用jxl读取Excel表格数据

    "使用jxl读取Excel表格数据"这个主题就是关于如何利用jxl库来实现这一目标。jxl是一个开源的Java库,它提供了对Microsoft Excel文件格式的支持,使得在Java中操作Excel变得简单。 首先,你需要获取jxl的jar包。由于...

    jxl读取excel的java代码小程序

    在这个"jxl读取excel的java代码小程序"中,我们将探讨如何利用JXL库来实现Excel文件的读取操作。 首先,我们需要在项目中引入JXL库。如果使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    Jxl读写Excel例子demo(2)

    本示例“Jxl读写Excel例子demo(2)”将详细解释如何利用jxl.jar库进行Excel文件的操作。 首先,我们需要理解Jxl库的核心概念。Jxl提供了对Excel文件格式的全面支持,包括单元格类型(文本、数字、日期等)、样式...

    java利用jxl读取excel文件

    使用`jxl`库读取Excel文件主要涉及以下步骤: 1. **导入必要的库**:在Java源代码中,你需要导入`jxl`相关的包。例如: ```java import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; ...

    jxl读取Excel报表

    标题中的“jxl读取Excel报表”指的是利用jxl库来操作Excel文件,特别是从Excel文件中提取数据以进行分析或进一步处理。以下是对这个主题的详细讲解: 首先,`jxl.jar`是jxl库的主要组件,它支持读取和写入Microsoft...

    jxl的excel读写操作

    2. **读取Excel文件** 使用`Workbook`类来打开Excel文件。以下是一个基本示例: ```java Workbook workbook = Workbook.getWorkbook(new File("yourfile.xls")); Sheet sheet = workbook.getSheet(0); // 获取第...

    jxl读取excel数据(带实例)

    本文将详细介绍如何使用JXL库来读取Excel数据,并通过一个实际的代码示例进行演示。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    用JXL读写excel到数据库实例

    使用jxl,读写excel数据进数据库的例子。 需要jxl.jar、poi-2.0-final-20040126.jar、mysql-connector-java-3.0.8-stable-bin.jar、jakarta-poi-1.5.1-final-20020615.jar。

    jxl读写excel源码

    Java编程语言提供了多种库来处理Excel文件,其中jxl是一个广泛使用的开源库,它使得在Java应用程序中读取和写入Excel文件变得简单。本文将详细介绍如何使用jxl库进行Excel文件的读写操作,以及适合初学者的关键知识...

    jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003

    在给定的标题和描述中,"jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003" 提到了一种结合Java Web技术实现文件上传,并通过不同库解析Excel文件的解决方案。这里我们将详细探讨涉及的各个知识点。 首先,`...

    利用jxl读取Excel代码的完整内容,包括jar包

    本篇将详细介绍如何利用jxl库读取Excel文件,并提供一个完整的代码示例。 首先,jxl库提供了一个方便的API,让我们能够轻松地与Excel文件交互。要使用jxl,你需要下载jxl.jar文件,并将其添加到你的项目类路径中。...

    POI和JXL读取EXCEL数据的工具类(POI支持2007)

    本主题将详细讲解如何使用Apache POI和JExcelApi(JXL)这两个Java库来读取Excel文件,以及提供的工具类`PoiUtil.java`和`JxlUtil.java`的使用方法。 Apache POI是一个流行的开源库,它允许开发者创建、修改和显示...

Global site tag (gtag.js) - Google Analytics