Java Excel Poi 单元格内置的数据格式

文章详细解释了ApachePOI库中BuiltinFormats类中的数据格式选项,包括数字、货币、日期、时间等,并展示了如何在代码中设置单元格的文本格式。
摘要由CSDN通过智能技术生成

位置

//在类 org.apache.poi.ss.usermodel.BuiltinFormats 中的私有成员变量_formats中
private static final String[] _formats = new String[]{"General", "0", "0.00", "#,##0", "#,##0.00", "\"$\"#,##0_);(\"$\"#,##0)", "\"$\"#,##0_);[Red](\"$\"#,##0)", "\"$\"#,##0.00_);(\"$\"#,##0.00)", "\"$\"#,##0.00_);[Red](\"$\"#,##0.00)", "0%", "0.00%", "0.00E+00", "# ?/?", "# ??/??", "m/d/yy", "d-mmm-yy", "d-mmm", "mmm-yy", "h:mm AM/PM", "h:mm:ss AM/PM", "h:mm", "h:mm:ss", "m/d/yy h:mm", "reserved-0x17", "reserved-0x18", "reserved-0x19", "reserved-0x1A", "reserved-0x1B", "reserved-0x1C", "reserved-0x1D", "reserved-0x1E", "reserved-0x1F", "reserved-0x20", "reserved-0x21", "reserved-0x22", "reserved-0x23", "reserved-0x24", "#,##0_);(#,##0)", "#,##0_);[Red](#,##0)", "#,##0.00_);(#,##0.00)", "#,##0.00_);[Red](#,##0.00)", "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)", "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)", "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)", "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)", "mm:ss", "[h]:mm:ss", "mm:ss.0", "##0.0E+0", "@"};

数据格式列举

0, "General"

1, "0"

2, "0.00"

3, "#,##0"

4, "#,##0.00"

5, "$#,##0_);($#,##0)"

6, "$#,##0_);[Red]($#,##0)"

7, "$#,##0.00);($#,##0.00)"

8, "$#,##0.00_);[Red]($#,##0.00)"

9, "0%"

0xa, "0.00%"

0xb, "0.00E+00"

0xc, "# ?/?"

0xd, "# ??/??"

0xe, "m/d/yy"

0xf, "d-mmm-yy"

0x10, "d-mmm"

0x11, "mmm-yy"

0x12, "h:mm AM/PM"

0x13, "h:mm:ss AM/PM"

0x14, "h:mm"

0x15, "h:mm:ss"

0x16, "m/d/yy h:mm"

// 0x17 - 0x24 reserved for international and undocumented

0x25, "#,##0_);(#,##0)"

0x26, "#,##0_);[Red](#,##0)"

0x27, "#,##0.00_);(#,##0.00)"

0x28, "#,##0.00_);[Red](#,##0.00)"

0x29, "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)"

0x2a, "_($* #,##0_);_($* (#,##0);_($* \"-\"_);_(@_)"

0x2b, "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)"

0x2c, "_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)"

0x2d, "mm:ss"

0x2e, "[h]:mm:ss"

0x2f, "mm:ss.0"

0x30, "##0.0E+0"

0x31, "@" - This is text format.

0x31 "text" - Alias for "@"

数据格式对应的简要说明

  • 0,“General”:通用格式,Excel会根据输入的数据自动选择最合适的格式(如数字、日期或文本)。
  • 1,“0”:显示没有小数点的数字。
  • 2,“0.00”:显示带有两位小数的数字。
  • 3,“#,##0”:显示带有千位分隔符的整数。
  • 4,“#,##0.00”:显示带有千位分隔符和两位小数的数字。
  • 5,“#,##0_);(#,##0)”:显示正数带有千位分隔符的货币格式,负数在括号中。
  • 6,“#,##0_);[Red](#,##0)”:与上一个格式相同,但负数显示为红色。
  • 7,“#,##0.00);(#,##0.00)”:与格式5类似,但包括两位小数。
  • 8,“#,##0.00_);[Red](#,##0.00)”:与格式6和7相同,但包括两位小数,且负数显示为红色。
  • 9,“0%”:显示数字为百分比,没有小数位。
  • 0xa,“0.00%”:显示数字为百分比,包括两位小数。
  • 0xb,“0.00E+00”:科学记数法,总是显示两位小数和指数。
  • 0xc,“# ?/?”:分数格式,显示一个分数。
  • 0xd,“# ??/??”:分数格式,显示带有两位整数的分数。
  • 0xe - 0x16:这些都是日期和时间的格式,显示月/日/年、小时:分钟:秒等不同的组合。
  • 0x17 - 0x25:为保留格式,暂时用不到
  • 0x26: 显示正数为正常颜色,负数为红色。没有小数部分。
  • 0x27: 正数格式与上相同,但包括两位小数。负数也包括两位小数。
  • 0x28: 与0x27类似,但负数显示为红色。
  • 0x29: 用于显示与零值有关的数字,带有一些自定义的文本和符号。通常用于显示正负值和零值,以及某些自定义文本。
  • 0x2a: 与0x29类似,但包括货币符号。
  • 0x2b: 与0x2a类似,同时包括两位小数。
  • 0x2c: 与0x2b相同,但应用于货币值。
  • 0x2d: 时间格式,显示分钟和秒。
  • 0x2e: 显示小时、分钟和秒的时间格式。
  • 0x2f: 与0x2d相同,但秒的小数部分显示一位。
  • 0x30: 科学记数法表示,但只显示一位小数。
  • 0x31: 表示文本格式。当单元格设置为这种格式时,单元格中的内容会被当作纯文本处理,不会进行数字运算。

 其中文本格式既可以用 @也可以用TEXT作为输入表示

代码中如何设置单元格的数据格式

代码演示,设置单元格数据格式为文本

import org.apache.poi.ss.usermodel.*;  
import org.apache.poi.xssf.usermodel.XSSFWorkbook;  
  
public class SetCellToTextFormatExample {  
    public static void main(String[] args) throws Exception {  
        // 创建新的Excel工作簿  
        Workbook workbook = new XSSFWorkbook();  
          
        // 创建工作表  
        Sheet sheet = workbook.createSheet("Sheet1");  
  
        // 创建CellStyle并设置数据格式为文本  
        CellStyle textStyle = workbook.createCellStyle();  
        DataFormat dataFormat = workbook.createDataFormat();  
        textStyle.setDataFormat(dataFormat.getFormat("@")); // "@"代表文本格式  
  
        // 创建行和单元格,并应用文本样式  
        Row row = sheet.createRow(0); // 创建行  
        Cell cell = row.createCell(0); // 创建单元格  
        cell.setCellValue("This is text format"); // 设置单元格值  
        cell.setCellStyle(textStyle); // 应用样式到单元格  
  
        // 输出到文件,这里为了演示输出到控制台  
        System.out.println(workbook);  
          
        // 实际应用中,你可能需要保存到文件  
        // FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");  
        // workbook.write(fileOut);  
        // fileOut.close();  
          
        workbook.close();  
    }  
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值