import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelExportTest {
public final static String lineDlim="/###/";
private static String getLine(HSSFSheet sheet, int row) {
// 根据行数取得Sheet的一行
HSSFRow rowline = sheet.getRow(row);
// 创建字符创缓冲区
StringBuffer buffer = new StringBuffer();
int filledColumns = 0;
// 获取当前行的列数
if (rowline != null)
filledColumns = rowline.getLastCellNum();
HSSFCell cell = null;
// 循环遍历所有列
for (int i = 0; i < filledColumns; i++) {
// 取得当前Cell
cell = rowline.getCell((short) i);
String cellvalue = null;
if (cell != null) {
// 判断当前Cell的Type
switch (cell.getCellType()) {
// 如果当前Cell的Type为NUMERIC
case HSSFCell.CELL_TYPE_NUMERIC: {
// 判断当前的cell是否为Date
if (HSSFDateUtil.isCellDateFormatted(cell)) {
// 如果是Date类型则,取得该Cell的Date值
Date date = cell.getDateCellValue();
// 把Date转换成本地格式的字符串
cellvalue = (new SimpleDateFormat("yyyy-MM-dd")).format(date);
//cellvalue = cell.getDateCellValue().toLocaleString();
}
// 如果是纯数字
else {
// 取得当前Cell的数值
Long num = new Long((long) cell
.getNumericCellValue());
cellvalue = String.valueOf(num);
Double dn=cell.getNumericCellValue();
if(dn==(double)num){
cellvalue = String.valueOf(num);
}else{
DecimalFormat numberForm = new DecimalFormat("0.############");
cellvalue= numberForm.format(dn);
//cellvalue=String.format("%1f", dn);
}
}
break;
}
// 如果当前Cell的Type为STRIN
case HSSFCell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellvalue = cell.getRichStringCellValue().getString().replaceAll("'", "''").trim();
break;
// 默认的Cell值
default:
cellvalue = " ";
}
} else {
cellvalue = "";
}
// 在每个字段之间插入分割符
buffer.append(cellvalue).append("&&");
}
// 以字符串返回该行的数据
return buffer.toString();
}
public static void main(String[] args) throws IOException {
InputStream in = new FileInputStream("D:/amember.xls");
//XLSUtil xu = new XLSUtil(in);
//System.out.println(xu.getContent());
HSSFWorkbook xslBook = null;
int numOfSheets;
xslBook = new HSSFWorkbook(in);
numOfSheets = xslBook.getNumberOfSheets();
StringBuffer buffer = new StringBuffer();
HSSFSheet sheet;
for (int i = 0; i < numOfSheets; i++) {
sheet = xslBook.getSheetAt(i);
// 当前行位置清零
//sheet.getLastRowNum()
for (int j = 0; j <= 5; j++) {
buffer.append(getLine(sheet, j));
buffer.append(lineDlim);
System.out.println(buffer);
buffer.setLength(0);
}
System.out.println("sheet>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
}
}
}