文档章节

jxl操作excel(转摘)

许雷神
 许雷神
发布于 2015/05/15 01:10
字数 419
阅读 12
收藏 0

package com.mfanw.ssh.util;


import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.ArrayList;


import javax.servlet.http.HttpServletResponse;


import jxl.Sheet;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;


public class ExcelUtil {


/**

* 根据路径加载excel文件

* @param xlsPath

*            文件路径

* @param startRow

*            开始的行号(从0开始)

* @param startCount

*            开始的列号 (从0开始)

* @param endCount

*            结束的列号 (从0开始)

* @return 结果集合

*/

public ArrayList<String[]> excelRead(String xlsPath, int startRow, int startCount, int endCount) {

ArrayList<String[]> result = new ArrayList<String[]>();

Sheet sheet = null;

InputStream is = null;

Workbook wb = null;

try {

is = new FileInputStream(xlsPath);// 工作簿需要是标准的工作簿

wb = Workbook.getWorkbook(is); // 得到工作薄,全部工作簿

String[] lineContent = null;

sheet = wb.getSheet(0);

int rows = sheet.getRows(); // 得到excel的总行数

for (int row = startRow; row < rows; row++) {// 4是为了定位到输入的开始位置

lineContent = new String[endCount - startCount];

for (int count = startCount; count < endCount; count++) {

lineContent[count - startCount] = getCellString(sheet, count, row);

}

result.add(lineContent);

}

wb.close();

is.close();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

wb.close();

is.close();

} catch (Exception e) {

}

}

return result;

}


/**

* @param sheet

* @param x

* @param y

* @return

*/

private String getCellString(Sheet sheet, int x, int y) {

String s = "";

try {

s = sheet.getCell(x, y).getContents().trim();

} catch (Exception e) {

s = "";

}

return s;

}


public void excelWrite(OutputStream os, ArrayList<String[]> result, String sheetName) throws Exception {

WritableWorkbook workbook = Workbook.createWorkbook(os);

WritableSheet sheet = workbook.createSheet(sheetName, 0);

for (int i = 0; i < result.size(); i++) {

String[] temp = result.get(i);

for (int j = 0; j < temp.length; j++) {

Label labelC = new Label(j, i, temp[j]);

sheet.addCell(labelC);

}

}

workbook.write();

workbook.close();

}


public void excelExport(HttpServletResponse response, File file, boolean isDel) throws Exception {

// 获得文件名

String filename = file.getName();

// 定义输出类型(下载)

response.setContentType("application/force-download");

response.setHeader("Location", filename);

// 定义输出文件头

response.setHeader("Content-Disposition", "attachment;filename=" + filename);

OutputStream out = response.getOutputStream();

this.excelWrite(out, null, filename);

out.close();

response.flushBuffer();

if (isDel) {

// 删除文件,删除前关闭所有的Stream.

file.delete();

}


}


public static void main(String[] args) throws Exception {

ExcelUtil util = new ExcelUtil();

ArrayList<String[]> result = util.excelRead("E:/1.xls", 2, 0, 6);

File f = new File("E:/2.xls");

OutputStream os = new FileOutputStream(f);

util.excelWrite(os, result, "22");

os.close();

}

}


本文转载自:#

共有 人打赏支持
许雷神
粉丝 7
博文 13
码字总数 0
作品 0
广州
私信 提问
jxl导入/导出Excel(Maven)

About jxl is a pure java 5 super-project that includes Enclosure, Peermi, Enshell, and Xlp. jxl && POI jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Exc......

coderzs
2017/08/31
0
0
java处理excel的一点实践积累

java处理excel的一点实践积累 作者:佟亮 日期:2008-11-06 1 文档说明 目的:编写本文档主要的目的是与大家分享下如何用java处理excel,文档中的代码一部分来自《企业项目管理系统V2.0》的源...

tongliang4444
2016/08/11
0
0
Android操作文档系列2- 操作Excel

1 开发调研 1.1 需求描述MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。作为办公文档,势必要涉及到的电子文档的交换,Excel是一种在企业中非常通用的文件格式,...

我家有宝
2016/09/27
37
0
[转]Java大数据量导出Excel的问题

试共同条件: 数据总数为110011条,每条数据条数为19个字段。 电脑配置为:P4 2.67GHz,1G内存。 一、POI、JXL、FastExcel比较 POI、JXL、FastExcel均为java第三方开源导出Excel的开源项目。...

大冬
2011/07/28
0
1
Excel解析与数据生成(支持JXL,POI)

最近项目中需要用到Excel解析与生成Excel,但现有系统中没有进行解析工具封装于是便封装一个Excel工具包,支持JXL工具包与POI工具包解析与生成数据,POI支持2003与2007。 Excel解析目前网上有...

皮蛋猫
2013/02/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【分享实录】BANCOR算法详解及代码实现

1 活动基本信息 1)主题:【区块链技术工坊22期】BANCOR算法详解及代码实现 2)议题: BANCOR算法的特点和优劣势 BANCOR算法和举例 如何加入BANCOR.NETWORK交易所 如何开发自己的BANCOR去中心...

HiBlock
13分钟前
2
0
微信小程序(2)

开始看微信小程序的教程了。刚刚看完官方教程的视图层部分。这里摘录一些自己认为的部分关键点。 1.直接修改数值无法重新渲染,需要使用setData()方法; 2.列表渲染中:wx:key用于保持项目在...

MKjy
14分钟前
0
0
Vuex入门到上手教程

这篇文章主要介绍了Vuex入门到上手教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、前言 当我们的应用遇到多个组件共享状态时,会需要多个组件依赖于...

嫣然丫丫丫
16分钟前
1
0
全局光照---光线跟踪方法

光线跟踪方法 基本光线跟踪算法 光线与对象表面的求交计算 光线-球面求交 光线-多面体求交 减少对象求交计算量 空间分割方法 模拟照相机的聚焦效果 光线跟踪反走样 分布式光线跟踪

中国龙-扬科
16分钟前
2
0
深入理解Vue router的部分高级用法

今天要介绍的是路由元信息,滚动行为以及路由懒加载这几个的使用方法。 1.路由元信息 什么是路由元信息,看看官网的解释,定义路由的时候可以配置 meta 字段可以匹配meta字段,那么我们该如何...

peakedness丶
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部