package jxl.bp;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Range;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class Run {
public static void main(String[] args) throws BiffException, IOException {
new Run()._m_readExcel();
}
public void _m_readExcel() throws BiffException, IOException {
String _v_filePath = "E:\\222222222222222.xls";
File _v_excelFile = new File(_v_filePath);
Workbook _v_wb = Workbook.getWorkbook(_v_excelFile);
Sheet _v_s = _v_wb.getSheet(1); // 只做了一个Sheet的, 如果想全部遍历, 只需要套入循环内即可
Range[] _v_rs = _v_s.getMergedCells(); // 得到当前Sheet里面合并的单元格个数
List<Range> _v_listRange = new ArrayList<Range>(); // 换一个方式存储合并的单元格
List<Range> _v_listRange2 = new ArrayList<Range>(); // 存储用过的合并单元格
// 赋值
for (Range r : _v_rs)
_v_listRange.add(r);
String _v_string = "<table>\r\n";
for (int i = 0; i < _v_s.getRows(); i++) {
_v_string += "\t<tr>\r\n";
Cell[] _v_cs = _v_s.getRow(i);
for (int _v_i = 0; _v_i < _v_cs.length; _v_i++) {
Cell _v_c = _v_cs[_v_i];
boolean b = true; // 表示是否是合并的单元格
boolean bool = true; // 表示是否已经判断过了
// 判断是否已经用完了合并的单元格, 为用完则循环判断
if(_v_listRange2.size() < _v_listRange.size()) {
// 判断是否已经用过合并的单元格了, 即对bool进行赋值
for (Range range : _v_listRange2) {
Cell _v_tlCell = range.getTopLeft();
Cell _v_blCell = range.getBottomRight();
int c1 = _v_c.getColumn(), c2 = _v_tlCell.getColumn(), c3 = _v_blCell
.getColumn();
int r1 = _v_c.getRow(), r2 = _v_tlCell.getRow(), r3 = _v_blCell
.getRow();
if (c1 >= c2 && c1 <= c3 && r1 >= r2 && r1 <= r3)
bool = false;
}
if (bool) {
for (Range _v_range : _v_listRange) {
Cell _v_tlCell = _v_range.getTopLeft();
Cell _v_blCell = _v_range.getBottomRight();
int c1 = _v_c.getColumn(), c2 = _v_tlCell.getColumn(), c3 = _v_blCell
.getColumn();
int r1 = _v_c.getRow(), r2 = _v_tlCell.getRow(), r3 = _v_blCell
.getRow();
// 判断是否是合并的单元格
if (c1 >= c2 && c1 <= c3 && r1 >= r2 && r1 <= r3) {
_v_string += "\t\t<td rowspan=\"" + (r3 - r2 + 1)
+ "\" colspan=\"" + (c3 - c2 + 1)
+ "\">\r\n\t\t\t"
+ _v_c.getContents().replaceAll("\n", "")
+ "\r\n\t\t</td>\r\n";
_v_i += (c3 - c2);
b = false;
_v_listRange2.add(_v_range);
}
}
}
}
if (b && bool) {
_v_string += "\t\t<td>\r\n\t\t\t"
+ _v_c.getContents().replaceAll("\n", "")
+ "\r\n\t\t</td>\r\n";
}
}
_v_string += "\t</tr>\r\n";
}
_v_string += "</table>";
PrintWriter _v_pw = new PrintWriter("E:\\33333333333.txt");
_v_pw.println(_v_string);
_v_pw.flush();
_v_pw.close();
System.out.println(_v_string);
}
}
分享到:
相关推荐
Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容
JAVA读取 excelJAVA读取 excel
java读取excel数据导入数据库源码 java读取excel数据导入数据库源码
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
完美解决java读取excel内存溢出问题,希望可以帮到大家
java读取excel文件和导出数据的工具类,特别是导出的工具类,支持导出数据和导出模板。
包括jar包,以及Java写的小程序用于读取本地excel文件,还有相关的API,以及Web应用导出Excel报表的简单实现
java 读取Excel文件中的内容 java 读取Excel文件中的内容
如何利用java来编写读取excel的方法,代码
java读取excel表格的数据,并将其保存!已经调试过了,可以使用!
java读取xls中的数据,每个对象对应多个属性值,根据每个对象的属性值来生成一个二维矩阵
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
通过Java读取Excel文件中的数据时,需要自动判断当前Cell中的数据格式是否日期格式,如果是就要做特殊处理,以便读出数据的格式与预想的相符。
java 读取excel内容 创建excel 插入文字及图片 可以直接运行
这一篇通过JAVA读取Excel,将Excel表结构同步到数据库中,并生成java实体类。与上一篇类似,这里只介绍类说明,具体实现,可查看源码。 ...3:读取Excel-->封装为JavaBean-->生成相对应的java实体
JAVA读取Excel,建库建表,并生成java实体
开发调用Poi进行读取生成操作Excel的jar。含有:要引入的jar包有xmlbeans-2.6.0.jar, poi-3.9-20121203.jar, poi-excelant-3.9.jar, poi-ooxml-3.9.jar, poi-ooxml-schemas-3.9.jar, dom4j-1.6.1.jar。
java 读取 excel,代码绝对没有错误。请放心下载,祝大家好运
使用Java读取Excel文件的内容,主要是使用POI框架,可以读取最新的Excel文件xlsx后缀文件,即2007版本之后的。