JAVA操作excel文件-----using jxl

本文介绍了一个Java工具,用于处理以.xls格式保存的Excel文件。该工具可以遍历所有单元格,将单元格内的换行符替换为空格。适用于需要批量处理Excel文件的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java只能处理以xls结尾的excel文件,所以处理excel时,必须先把excel文件另存为.xls文件。

以下例子功能,对excel中所以cell进行判断。把cell中的回车符号转换为空格。
帮同事写的一个小工具。


package com.jun.xie;

import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ClearEnter {

/**
* @param args
*/
public static void main(String[] args) {
ClearEnter test = new ClearEnter();
String path = "C:\\01\\test";
File file = new File(path);
File[] filelist = test.getFilelist(file);
for (File newfile : filelist) {
if (newfile.getName().endsWith("xls")) {
System.out.println(newfile.getName() + " is a xls file");
System.out.println("--start--");
test.doFile(newfile);
System.out.println("--end--");
}
}
}

private File[] getFilelist(File file) {
File[] list = null;
if (file.isDirectory()) {
list = file.listFiles();
}
return list;
}

private void doFile(File file) {
try {
Workbook wb = Workbook.getWorkbook(file);
// 打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(file, wb);

//循环编列sheet
for (int i = 0; i < book.getSheets().length; i++) {
WritableSheet sheet = book.getSheet(i);

//双重循环编列cell
for (int j = 0; j < sheet.getColumns(); j++) {
for (int k = 0; k < sheet.getRows(); k++) {
//取出cell中的值
Cell cell1 = sheet.getCell(j, k);
String result = cell1.getContents();

//把所有的回车符号转换为空格,并且重新写入到原来的cell中
if (result.indexOf("\n") != -1) {
System.out.println("hi");
System.out
.println("sheet name: " + sheet.getName());
System.out.println("第" + (k + 1) + "行 ---" + "第"
+ (j + 1) + "列进行了修改");
result = result.replaceAll("\n", " ");
try {
sheet.addCell(new Label(j, k, result));
} catch (RowsExceededException e) {
System.out.println("---------");
e.printStackTrace();
} catch (WriteException e) {
System.out.println("-+++++++++-");
e.printStackTrace();
}
} else {
continue;
}
}
}
}
book.write();
book.close();
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值