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

位置

java 复制代码
//在类 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作为输入表示

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

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

java 复制代码
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();  
    }  
}
相关推荐
Swift社区1 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht1 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht2 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20242 小时前
Swift 数组
开发语言
吾日三省吾码2 小时前
JVM 性能调优
java
stm 学习ing3 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc3 小时前
《Python基础》之字符串格式化输出
开发语言·python
弗拉唐3 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi774 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器