利用jxl读取excel合并的单元格的一个小例子

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

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

如Excel文件如下:

读取出来的记录为:

由上图可以看出,合并的单元格只有第一次输出了,这样的话,在保存数据

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

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);
	}

}

输出结果如下:

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

时间: 2024-11-05 16:30:09

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

JAVA利用jxl读取Excel内容

JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. 1 import java.io.File; 2 import java.io.FileInputStream; 3 4 import jxl.Cell; 5 import jxl.Sheet; 6 import jxl.Workbook; 7 8 9 public class testxls { 10 /** 11 * 读取xls文件内容 12 * @param file 想要读取

基于.NET的Excel开发:单元格区域的操作(读取、赋值、边框和格式)

引用 using Excel = Microsoft.Office.Interop.Excel; 定义 1 Excel.ApplicationClass app; 2 Excel.Workbooks books; 3 Excel.Workbook book; 4 Excel.Sheets sheets; 5 Excel.Worksheet sheet; 6 Excel.Range m_objRange; 7 object missing = System.Reflection.Missing.V

如何把Excel中的单元格等对象保存成图片

对于Excel中的很多对象,比如单元格(Cell),图形(shape),图表(chart)等等,有时需要将它们保存成一张图片.就像截图一样. 最近做一个Excel相关的项目,项目中遇到一个很变态的需求, 需要对Excel中的一些对象进行拍图,比如,对一个单元格设置一些颜色之后拍图,或者对一个图表,报表拍成图片.经过比较曲折的经历,终于还是完成了.拿出来分享一下. 要做Excel,首先当然是查看Excel的com对象模型.地址在这里: http://msdn.microsoft.com/en-us

[从产品角度学excel 04]-单元格的“衣服”

忘记发这里了..补发一下 这是<从产品角度学EXCEL>系列——单元格篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 2 EXCEL里的树形结构 3 单元格的秘密(文本/数字篇) 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布于特定网站.不接受任何无授权转载,如需转载,请先联系我,非常感谢. 抱歉之前因为有各种事情,一个多月没更新了,从今天开始恢复更新. 在前一章节里,我们通过对excel xml代码的阅读,发现在excel单元格里,文本

datawindow合并相同单元格

在dataobject菜单rows--->supress repeating values找到要合并的列 缺陷:不能实现居中的功能! datawindow合并相同单元格,布布扣,bubuko.com

Dev GridControl,GridView 显示多行文本及合并相同单元格

显示多行文本的方法 首先把gridcontrol的views的Optionsview里的RowAutoHeight设置为True 在In-place Editor Repository 里添加 MemoEdit控件 在Columns里选择对应的列,在ColumnEdit里选择MemoEdit控件 合并相同单元格的方法 1:设置OptionsView.AllowCellMerge 为 True 此时所有列的相邻行的相同单元格都会合并 2:如部分列不需要自动合并功能 ,只需设置指定列的 Option

C#中怎么在EXCEL中的单元格中画斜线啊 ??

Code Snippet 做法: 1,先添加引用COM,找 Excel 2,using Excel = Microsoft.Office.Interop.Excel; 3, 代码 private Excel.Application m_objExcel = null;        private Excel.Workbooks m_objBooks = null;        private Excel._Workbook m_objBook = null;        private E

Latex 制作斜线表头、合并行列单元格

这篇文章主要给出一些 Latex 制作斜线表头.合并行单元格与合并列单元格的 demo 演示 latex:制作斜线表头 \begin{tabular}{|l|ccc|} \hline \diagbox{Time}{Room}{Day} & Mon & Tue & Wed \\ \hline Morning & used & used & \\ Afternoon & & used & used \\ \hline \end{tabul

js合并table单元格实例

这里展示js合并table的单元格,代码亲测可行 后台采用springmvc搭建 Record实体类 public class Record {     public String isp;     public String large_area;     public String province;     public String name;     public String age;       ......   //省略get和set方法  } action方法