工作中我们可能要把Excel文件的记录保存到数据库,

今天我用jxl读取Excel文件时遇到了合并格的问题,记录例如以下:

如Excel文件例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGg2NzY3NTk4Mjk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

读取出来的记录为:

由上图能够看出,合并的单元格仅仅有第一次输出了,这种话,在保存数据

到数据库时就会有数据遗漏,所以做了一定的改造,代码例如以下:

package temp;

import java.io.File;
import java.io.IOException; import jxl.Range;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException; public class SimpleExcelRead {
public void readExcel(File file) throws BiffException, IOException {
Workbook wb = Workbook.getWorkbook(file);// 从文件流中取得Excel工作区对象
Sheet sheet = wb.getSheet(0); System.out.println(file.getName());
System.out.println("第一个sheet的名称为:" + sheet.getName());
System.out.println("第一个sheet共同拥有:" + sheet.getRows() + "行"
+ sheet.getColumns() + "列");
System.out.println("详细内容例如以下:");
Range[] rangeCell = sheet.getMergedCells(); for (int i = 0; i < sheet.getRows(); i++) {
for (int j = 0; j < sheet.getColumns(); j++) {
String str = null;
str = sheet.getCell(j, i).getContents();
for (Range r : rangeCell) {
if (i > r.getTopLeft().getRow()
&& i <= r.getBottomRight().getRow()
&& j >= r.getTopLeft().getColumn()
&& j <= r.getBottomRight().getColumn()) {
str = sheet.getCell(r.getTopLeft().getColumn(),
r.getTopLeft().getRow()).getContents();
}
}
System.out.print(str + "\t");
}
System.out.println();
}
wb.close();
} public static void main(String[] args) throws BiffException, IOException {
SimpleExcelRead sr = new SimpleExcelRead();
File file = new File("test.xls");
sr.readExcel(file);
} }

输出结果例如以下:

这样保存数据时,就不会遗漏数据了。

利用jxl读取excel合并的单元格的一个小样例的更多相关文章

  1. [转载]Java读取Excel中的单元格数据

    目前网上能找到的读取Excel表格中数据的两种比较好的方案:PageOffice好用开发效率高:POI免费.供大家参考,针对具体情况选择具体方案. 1. PageOffice读取excel impor ...

  2. JAVA利用jxl读取Excel内容

    JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. import java.io.File; import java.io.FileInp ...

  3. 完美解决读取Excel的数字单元格时Cannot get a STRING value from a NUMERIC cell 报错处理

    我使用的是Poi(最新的4.1.0)方式读取Excel ,我的方法如下: 在打印cell内容时,抛出下面的错误 Exception in thread "main" java.la ...

  4. NPOI读取Excel日期类型单元格返回一串数字问题

    public string getCellStringNEW(int row, int column) { try { ICell cell = xlSheet.GetRow(row).Cells[c ...

  5. PHPExcel正确读取excel表格时间单元格(转载)

    error_reporting(E_ALL); date_default_timezone_set('Asia/shanghai'); /** PHPExcel_IOFactory */ requir ...

  6. jxl获取excel中的合并的单元格(主要是方法介绍)

    Range[] rangeCells = sheet.getMergedCells();// 返回sheet中合并的单元格数组 for (Range r : rangeCells) {//对数组遍历拿 ...

  7. excel把按行合并的单元格重新拆分

    前言 今天帮朋友弄她excel表格的数据,发现excel表格合并之后,再拆分就不再同一行里面了,导致后面想要拆分回来非常头痛,如下图(下面的数据是模拟的): 可以看到第一例和其他例中间部分为合并的,此 ...

  8. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  9. phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    转:http://www.cnblogs.com/huangcong/p/3687665.html 首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包 ...

随机推荐

  1. Hyper-v 安装CentOS

    http://www.cnblogs.com/dunitian/p/4976077.html

  2. mssql字符串分割后的值,把表中不存在的插入表中

    字符串分割后的值,把表中不存在的插入表中 --供大家参考 使用场景,自行思考…… --创建表tb1 Create table tb1 ( cola int, colb ) ) --插入数据 inser ...

  3. Java的函数与函数重载

    关于Java的函数与函数重载 关于Java的函数与函数重载 1. 函数 假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹.发射炮弹的动作都需要使用一段百行左右的程序代码,在每次发射炮弹的地方都要 ...

  4. 推荐一款手机端的图片滑动插件iSlider

    首先先放出中文官方地址   http://be-fe.github.io/iSlider/index.html 这是demo 众所周知,移动端的图片滑动插件有很多,为什么我要推荐这个iSlider呢? ...

  5. Java Buffer

    1.1 NIO Buffers - Class java.nio.Buffer NIO data transfer is through the so-called buffers implement ...

  6. Oracle 数据库导入、导出

    第一步:新建一个txt文件: exp.exe jeamsluu@test file=d:\daochu.dmp log=1.log 另存为.bat格式的文件 第二步:双击运行:此时会弹出输入口令的对话 ...

  7. MySQL zerofill 的用法

    creata table t(x int(6) zerofill,y int); insert into t(x,y) values(1,1); select x,y from t;

  8. 浅谈qt 布局器

    在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是 ...

  9. List<T>到XML的序列化与反序列化

    原文 http://hi.baidu.com/shishengli1234/item/f0536f36335390c22f8ec24b Model.RESE_SCH sch1 = new Model. ...

  10. [置顶] SpecDD(混合的敏捷方法模型)主要过程概述

    敏捷已成为当今使用最广泛的开发方法.有趣的是,敏捷方法的流行性并不是因为它取代了其他开发方法,相反它与这些方法进行了更好地融合.现实世界众多敏捷项目的成功,也证明了敏捷将走向杂化的未来. SpecDD ...