您的位置:首页 > 编程语言 > Java开发

用POI读取Excel表格中的值并存储为TXT文件

2015-09-19 09:35 495 查看
package Service;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

//可参见 http://baike.baidu.com/link?url=y-NVwByyOWsjM6guyVO1912JDDQMxRGXj2BsC_0Lf_1mgh87ON7ybwY_Pv2eEtUj9LqafB9IJ_l_Ha80b0BiaM9RYfTMCMSb5rFIoCuHkMC public class Test1 {

//读入excel的文件
public static String inputFile = "tableH.1.xls";
//写入到指定的txt中
public static String outputFile = "tableH.1.txt";
//开始的行号
public static int startRowNumber = 1;
//选取的列号
public static int[] selectColNumber = {0, 1, 2, 3, 4};

public static void main(String[] args) throws IOException {

File f = new File(inputFile);
FileWriter fw = new FileWriter(outputFile);

//写入标题
fw.write("表F. 1人工造林措施数据代码表\r\n\r\n");

try {
FileInputStream is = new FileInputStream(f);
HSSFWorkbook wbs = new HSSFWorkbook(is);
HSSFSheet childSheet = wbs.getSheetAt(0);
// System.out.println(childSheet.getPhysicalNumberOfRows());
System.out.println("有行数" + childSheet.getLastRowNum());
//当需要读取最后一行时j <= childSheet.getLastRowNum();否则<
for (int j = 0; j <= childSheet.getLastRowNum(); j++) {
HSSFRow row = childSheet.getRow(j);
// System.out.println(row.getPhysicalNumberOfCells());
// System.out.println("有列数" + row.getLastCellNum());
if (null != row && j > startRowNumber) {

for (int k = 0; k < row.getLastCellNum(); k++) {
HSSFCell cell = row.getCell(k);
//System.out.println("******"+k);
if (null != cell && k == selectColNumber[k]) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC: // 数字
System.out.print(cell.getNumericCellValue()
+ "   ");
fw.write(cell.getNumericCellValue() + "\r\n");
break;
case HSSFCell.CELL_TYPE_STRING: // 字符串
System.out.print(cell.getStringCellValue()
+ "   ");
fw.write(cell.getStringCellValue() + "\r\n");
break;
case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
System.out.println(cell.getBooleanCellValue()
+ "   ");
fw.write(cell.getBooleanCellValue() + "\r\n");
break;
case HSSFCell.CELL_TYPE_FORMULA: // 公式
System.out.print(cell.getCellFormula() + "   ");
fw.write(cell.getCellFormula() + "\r\n");
break;
case HSSFCell.CELL_TYPE_BLANK: // 空值
System.out.println(" ");
fw.write(" " + "\r\n");
break;
case HSSFCell.CELL_TYPE_ERROR: // 故障
System.out.println(" ");
fw.write(" " + "\r\n");
break;
default:
System.out.print("未知类型   ");
break;
}
} else {
System.out.print("-   ");
}
}
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
fw.flush();
fw.close();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poi IO java 字符流 excel