getCell里面是两个整数,最多一次可以读取65535行。
读取的行数如果大于这个,只能读取65535行。
如果读取一千万多行的文本数据,用 EditPlus 软件打开,会直接卡死,如果用 Notepad++可以正常打开。
如果只是想把数据格式转换一下,不进行数据处理,可以用Notepad++ 打开,然后另存为txt格式即可。
如果用代码读写转换,代码如下:
package excel;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class Read_Excel {
public static void main(String[] args) throws Exception {
//生成的txt文件路径
//File file1 = new File("D:" + File.separator + "test" + File.separator+ "demo.txt");
//File file1 = new File("E:" + File.separator + "demo1.txt");
File file1 = new File("E:" + File.separator + "demo2.txt");
if (!file1.getParentFile().exists()) {
file1.getParentFile().mkdirs();
}
Writer out = new FileWriter(file1);
int i;
Sheet sheet;
Workbook book;
Cell cell1, cell2, cell3;
int count=0;
try {
// t.xls为要读取的excel文件名
//book = Workbook.getWorkbook(new File("F:/a.xls"));
book = Workbook.getWorkbook(new File("E:/tianchi_mobile_recommend_train_item.xls"));
System.out.println("执行了");
// 获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)
sheet = book.getSheet(0);
// 获取左上角的单元格
cell1 = sheet.getCell(0, 0);
System.out.println("标题:" + cell1.getContents());
i = 1;
while (true) {
// 获取每一行的单元格
cell1 = sheet.getCell(0, i);// (列,行)
cell2 = sheet.getCell(1, i);
cell3 = sheet.getCell(2, i);
if ("".equals(cell1.getContents()) == true) // 如果读取的数据为空
break;
System.out.println(cell1.getContents() + "\t"
+ cell2.getContents()+ "\t"
+ cell3.getContents());
count++;
out.write(cell1.getContents() + "\t"+ cell2.getContents()+"\t"+ cell3.getContents()+"\r\n");
out.flush();
i++;
}
System.out.println("\n\n"+"count="+count+"\n");
out.close();
book.close();
} catch (Exception e) {
//System.out.println("没执行");
}
}
}