先下载一个开源jar包:http://www.andykhan.com/jexcelapi/
jxl.jar:可以读和写excel文件了.
写了一个删除excel中某行的类.拿来分享:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class MyFrame extends JFrame {
JTextField jt1 = new JTextField("删除内容", 13);
JTextField jt2 = new JTextField("文件路径", 20);
JButton jb = new JButton("点击删除");
JLabel jl = new JLabel();
public MyFrame() {
this.setLayout(new FlowLayout());
this.add(jt1);
this.add(jt2);
this.add(jb);
this.add(jl);
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String file = jt2.getText();
WritableWorkbook wworkbook = null;
Workbook workbook = null;
String keyword = jt1.getText();
String sheetName = "Sheet1";
jl.setText("正在删除中......");
try {
workbook = Workbook.getWorkbook(new File(file));
Sheet sheet = workbook.getSheet(0);
Cell[] columns = sheet.getColumn(4);
int[] index = new int[columns.length];
int j = 0;
for (int i = 0; i < columns.length; i++) {
if (keyword.equalsIgnoreCase(columns[i].getContents())) {
index[j++] = i;
}
}
wworkbook = Workbook.createWorkbook(new File(file),
workbook);// 拷贝只读的workbook到可写的wworkbook中.然后对这些数据处理,重写原来的excel这样就实现了删除某一行的操作.
for (int i = 0; i < index.length && index[i] != 0; i++) {
System.out.println("delete line:" + (index[i] + 1));
WritableSheet wsheet = wworkbook.getSheet(sheetName);
wsheet.removeRow(index[i]);
}
wworkbook.write();
wworkbook.close();
} catch (BiffException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
} catch (WriteException e3) {
e3.printStackTrace();
}
jl.setText("删除成功");
}
});
this.setSize(600, 200);
this.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
new MyFrame();
}
}