excel去除空行
来源:互联网 发布:fft算法三级实现 编辑:程序博客网 时间:2024/05/21 20:05
int emptyCell=0;
for(Cell cell:row){
String cellStringValue = getStringValue(cell);
if(StringUtils.isBlank(cellStringValue)
emptyCell++;
}
============csdn上下的=======================================
//使用poi,用java实现清除excel工作簿内容之间空行
public void delLineNull(String infileName) {
System.out.println("开始移除空行操作");
int key = 0;
int MaxRowNum = 0,MaxCellNum = 0;
try {
FileInputStream in = new FileInputStream(infileName);
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
FileOutputStream out = new FileOutputStream("D:\\ee.xls");
int number = workbook.getNumberOfSheets();
for (int i = 0; i < number; i++) { // 对每个sheet检查空行
HSSFSheet sheet = workbook.getSheetAt(i); //14
System.out.println("正在对工作簿:" + sheet.getSheetName() + " 移除空行操作 行数"
+ (sheet.getLastRowNum() + 1));
MaxRowNum = 0;
for (int k = 0; k <= sheet.getLastRowNum(); k++) {
HSSFRow hRow = sheet.getRow(k);
//System.out.println((k + 1) + "行");
if (isBlankRow(hRow)) // 找到空行索引
{
int m = 0;
for (m = k + 1; m <= sheet.getLastRowNum(); m++) {
HSSFRow nhRow = sheet.getRow(m);
if (!isBlankRow(nhRow)) {
//System.out.println("下一个非空行" + (m + 1));
sheet.shiftRows(m, sheet.getLastRowNum(), k - m);
break;
}
}
if (m > sheet.getLastRowNum())
break; // 此工作簿完成
} else { //非空行
MaxRowNum ++;
if(MaxCellNum < hRow.getLastCellNum())
MaxCellNum = hRow.getLastCellNum();
}
}
workbook.setPrintArea(i, 0, MaxCellNum, 0, MaxRowNum);
System.out.println("移除空行操作完成 "+sheet.getSheetName()+" 有效行数 "+MaxRowNum);
}
workbook.write(out);
in.close();
out.close();
}catch (IOException e) {
System.out.println(key+" "+e.getMessage()+" ");
e.printStackTrace();
}
System.out.println("移除空行操作完成");
}
/**
* 判断excel 空行
*/
public boolean isBlankRow(HSSFRow row) {
if (row == null)
return true;
for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
HSSFCell hcell = row.getCell(i);
if (!isBlankCell(hcell))
return false;
}
return true;
}
/**
* 判断excel 空单元格
/
public boolean isBlankCell(HSSFCell hcell) {
if (hcell == null)
return true;
hcell.setCellType(hcell.CELL_TYPE_STRING);
String content = hcell.getStringCellValue().trim();
if (content == null || "".equals(content)) // 找到非空行
{
return true;
}
return false;
}
======================== WorkbookFactory ====================================
for(Cell cell:row){
String cellStringValue = getStringValue(cell);
if(StringUtils.isBlank(cellStringValue)
emptyCell++;
}
============csdn上下的=======================================
//使用poi,用java实现清除excel工作簿内容之间空行
public void delLineNull(String infileName) {
System.out.println("开始移除空行操作");
int key = 0;
int MaxRowNum = 0,MaxCellNum = 0;
try {
FileInputStream in = new FileInputStream(infileName);
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
FileOutputStream out = new FileOutputStream("D:\\ee.xls");
int number = workbook.getNumberOfSheets();
for (int i = 0; i < number; i++) { // 对每个sheet检查空行
HSSFSheet sheet = workbook.getSheetAt(i); //14
System.out.println("正在对工作簿:" + sheet.getSheetName() + " 移除空行操作 行数"
+ (sheet.getLastRowNum() + 1));
MaxRowNum = 0;
for (int k = 0; k <= sheet.getLastRowNum(); k++) {
HSSFRow hRow = sheet.getRow(k);
//System.out.println((k + 1) + "行");
if (isBlankRow(hRow)) // 找到空行索引
{
int m = 0;
for (m = k + 1; m <= sheet.getLastRowNum(); m++) {
HSSFRow nhRow = sheet.getRow(m);
if (!isBlankRow(nhRow)) {
//System.out.println("下一个非空行" + (m + 1));
sheet.shiftRows(m, sheet.getLastRowNum(), k - m);
break;
}
}
if (m > sheet.getLastRowNum())
break; // 此工作簿完成
} else { //非空行
MaxRowNum ++;
if(MaxCellNum < hRow.getLastCellNum())
MaxCellNum = hRow.getLastCellNum();
}
}
workbook.setPrintArea(i, 0, MaxCellNum, 0, MaxRowNum);
System.out.println("移除空行操作完成 "+sheet.getSheetName()+" 有效行数 "+MaxRowNum);
}
workbook.write(out);
in.close();
out.close();
}catch (IOException e) {
System.out.println(key+" "+e.getMessage()+" ");
e.printStackTrace();
}
System.out.println("移除空行操作完成");
}
/**
* 判断excel 空行
*/
public boolean isBlankRow(HSSFRow row) {
if (row == null)
return true;
for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
HSSFCell hcell = row.getCell(i);
if (!isBlankCell(hcell))
return false;
}
return true;
}
/**
* 判断excel 空单元格
/
public boolean isBlankCell(HSSFCell hcell) {
if (hcell == null)
return true;
hcell.setCellType(hcell.CELL_TYPE_STRING);
String content = hcell.getStringCellValue().trim();
if (content == null || "".equals(content)) // 找到非空行
{
return true;
}
return false;
}
======================== WorkbookFactory ====================================
0 0
- excel去除空行
- jxl读取excel去除空行
- 去除空行
- 去除word中的空行
- 去除文件中的空行
- Shell去除空行
- EditPlus去除空行
- Notepad++ 去除空行方法
- bash shell去除空行
- Eclipse 去除空行
- Myeclipse去除空行
- python: 自动去除空行
- 如何去除word中的空行
- linux去除文本的空行
- js正则表达式去除空行
- 删除excel空行数据
- 如何批量删除Excel空行
- POI解析Excel,空行处理
- PHP正则表达式模式修正符
- 判断链表是否有环及环入口点的求法
- 添加VLC录像API
- tcp打洞图
- 关于Win32下创建线程的总结
- excel去除空行
- myeclipse 10.0 激活心得
- js滚动到指定页面高度
- 文本输出,取自《Windows程序设计》
- Mahout学习——Canopy Clustering
- Rational Rose2007(v7.0)下载地址、安装及激活详解教程(图)
- 指针地址的移动
- Linux下软件包管理工具dpkg和GNU C语言库的学习
- Linux LAMP环境搭建