日期:2014-05-17  浏览次数:20896 次

java导出EXCEL模板列属性设置
java导出一个EXCEL模板。 (使用Jxl或POI) 
用户拿到这个模板后使用,其中有一列是“身份证号码” 
输入340121198501111111,结果显示3.40121E+17。 
查明应把格式设置为文本格式, 
我想将导出的模板的“身份证号码”整个一列设置成文本类型怎么做? 

------解决方案--------------------
poi中 
// 定义单元格为字符串类型
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//在Excel工作簿中建一工作表
HSSFSheet sheet = null;
String sheetName = excel.getSheetName();
if(sheetName!=null)sheet=workbook.createSheet(sheetName);
else sheet=workbook.createSheet();
//列表头宽度
int[] width = excel.getWidth();

//设置表头字体
HSSFFont font_title = workbook.createFont();
font_title.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font_title.setFontHeight((short) 600);
//设置格式
HSSFCellStyle cellStyleTitle= workbook.createCellStyle();
cellStyleTitle.setFont(font_title);
cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//在索引0的位置创建行(第一行)
HSSFRow rowTitle = sheet.createRow((short)0);
rowTitle.setHeight((short) 750);
//合并标题单元格
sheet.addMergedRegion(new Region(0,(short) 0, 0,(short)(width.length-1)));
if (sheetName!=null){
//在索引0的位置创建单元格(左上端)
HSSFCell cell = rowTitle.createCell((short)0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//设置单元格的格式
cell.setCellStyle(cellStyleTitle);
// 在单元格中写入表头信息
cell.setCellValue(sheetName); 
}

//设置表头字体
HSSFFont font_h = workbook.createFont();
font_h.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//设置格式
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font_h);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setBorderLeft((short) 1);
cellStyle.setBorderRight((short) 1);
cellStyle.setBorderTop((short) 1);
cellStyle.setBorderBottom((short) 1);

//在索引0的位置创建行(第2行)
HSSFRow row = sheet.createRow((short)1);

ArrayList header = excel.getHeader();
if(header!=null){
for(int i=0;i<header.size();i++){