文档章节

jxl操作excel(转摘)

许雷神
 许雷神
发布于 2015/05/15 01:10
字数 419
阅读 17
收藏 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
Excel解析与数据生成(支持JXL,POI)

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

皮蛋猫
2013/02/01
0
0
Java利用jxl.jar操作Excel文件的方法——把两列相同的数据扫描输出到新的Excel文件中

最近公司在做数据库方面的改造,其中有两个核心库,可以把它们分别命名成A侧库和B侧库,改造的目的是把AB的库整合成一个库,其中表名相同的表要进一步处理,但是每个库中都有上千张表,如果单...

CloudArchitect
2013/09/28
0
1

没有更多内容

加载失败,请刷新页面

加载更多

centos7安装RabbitMQ详细过程

由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang 1、环境: centos 7.1 内核版本3.10.0-229.el7.x86_64 Erlang 19.0.4版本 RabbitMQ 3.6.14版本 2、在线安装E...

秋至丶枫以落
12分钟前
0
0
6个使用KeePassX保护密码的技巧

虽然安全是个深奥的主题,但是你可以遵循几个简单的日常习惯来减小攻击面。本文将解释确保密码信息安全的重要性,并给出如何充分利用KeePassX的建议。 日益互联的数字世界使安全成为一个重要...

Linux就该这么学
14分钟前
0
0
2018最佳GAN论文回顾(下)

继上一篇《2018最佳GAN论文回顾(上)》,我又继续介绍了一个对于GAN的基于样式的生成器体系结构的新论文,提出了一个新的模型来应对这种挑战。 一种用于生成式对抗网络的基于生成器体系结构...

阿里云官方博客
16分钟前
0
0
UnsatisfiedLinkError sawindbg.dll

方法:搜索sawindbg.dll,然后将文件报错的目录下

洛水
53分钟前
5
0
说说不知道的Golang中参数传递

本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中...

腾讯云加社区
53分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部