POI设置Excel单元格格式 (数值,日期,文本等等)

本文介绍如何使用Java POI库为Excel单元格设置各种样式,包括文本、日期、数值保留位数、货币、百分比、中文大写及科学计数法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://blog.youkuaiyun.com/liujimmy/article/details/6328298

HSSFWorkbook demoWorkBook = new HSSFWorkbook();   

 HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 Enterprises");   

 HSSFCell cell = demoSheet.createRow(0).createCell(0);

 

1.设置单元格为文本格式

 HSSFCellStyle cellStyle2 = demoWorkBook.createCellStyle();

 HSSFDataFormat format = demoWorkBook.createDataFormat();

 cellStyle2.setDataFormat(format.getFormat("@"));

 cell.setCellStyle(cellStyle2);

 

第一种:日期格式

 

            cell.setCellValue(new Date(2008,5,5));

            //set date format

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            HSSFDataFormat format= demoWorkBook.createDataFormat();

            cellStyle.setDataFormat(format.getFormat("yyyy年m月d日"));

            cell.setCellStyle(cellStyle);

 

第二种:保留两位小数格式

            cell.setCellValue(1.2);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));

            cell.setCellStyle(cellStyle);

 //by gisoracle 设置四位小数

 HSSFDataFormat format = wb.createDataFormat();
 cellStyle.setDataFormat(format.getFormat("0.0000")); //  四位小数

 

 //by gisoracle 设置四位小数,千分位使用,

 HSSFDataFormat format = wb.createDataFormat();
 cellStyle.setDataFormat(format.getFormat("#,##0.0000")); //  四位小数


 

第三种:货币格式

 

            cell.setCellValue(20000);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            HSSFDataFormat format= demoWorkBook.createDataFormat();

            cellStyle.setDataFormat(format.getFormat("¥#,##0"));

            cell.setCellStyle(cellStyle);

 

第四种:百分比格式

 

            cell.setCellValue(20);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));

            cell.setCellStyle(cellStyle);

  此种情况跟第二种一样

 

第五种:中文大写格式

 

            cell.setCellValue(20000);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            HSSFDataFormat format= demoWorkBook.createDataFormat();

            cellStyle.setDataFormat(format.getFormat("[DbNum2][$-804]0"));

            cell.setCellStyle(cellStyle);

 

第六种:科学计数法格式

 

            cell.setCellValue(20000);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            cellStyle.setDataFormat( HSSFDataFormat.getBuiltinFormat("0.00E+00"));

            cell.setCellStyle(cellStyle);

在Java中,使用Apache POI库操作Excel时,如果你想将所有单元格设置文本格式而不是默认的数值格式,可以这样做: 首先,你需要添加Apache POI依赖到你的项目中。如果你使用Maven,可以在pom.xml文件中加入以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>最新版本号</version> </dependency> ``` 然后,在创建HSSFWorkbook或XSSFWorkbook工作簿之后,你可以获取特定的Sheet并设置其所有单元格文本格式。下面是一个示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; // 创建一个新的Excel工作簿 Workbook workbook = new XSSFWorkbook(); // 或者使用HSSFWorkbook对于旧版的xls文件 // 获取你想修改格式的Sheet Sheet sheet = workbook.createSheet("Sheet1"); // 遍历Sheet的所有行 for (int rowIndex = 0; rowIndex < sheet.getLastRowNum() + 1; rowIndex++) { Row row = sheet.getRow(rowIndex); // 如果不存在行,则创建新的行 if (row == null) { row = sheet.createRow(rowIndex); } // 遍历每一列 for (int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) { Cell cell = row.getCell(cellIndex); // 如果单元格为空,设置为空白文本 if (cell == null || cell.getCellType() == CellType.BLANK) { cell.setCellValue(""); } else { // 将所有非空单元格设置文本类型,并清空其公式和数字值 cell.setCellType(CellType.STRING); cell.setCellValue(cell.getStringCellValue()); cell.setNumericValue(0); // 清除单元格数值 } } } // 最后记得保存工作簿 workbook.write(new File("output.xlsx")); // 替换为你实际的输出路径 // 关闭工作簿 workbook.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值