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();  
    }  
}
相关推荐
骆晨学长7 分钟前
基于springboot的智慧社区微信小程序
java·数据库·spring boot·后端·微信小程序·小程序
LyaJpunov9 分钟前
C++中move和forword的区别
开发语言·c++
AskHarries12 分钟前
利用反射实现动态代理
java·后端·reflect
@月落13 分钟前
alibaba获得店铺的所有商品 API接口
java·大数据·数据库·人工智能·学习
程序猿练习生14 分钟前
C++速通LeetCode中等第9题-合并区间
开发语言·c++·leetcode
liuyang-neu19 分钟前
力扣 42.接雨水
java·算法·leetcode
z千鑫22 分钟前
【人工智能】如何利用AI轻松将java,c++等代码转换为Python语言?程序员必读
java·c++·人工智能·gpt·agent·ai编程·ai工具
一名路过的小码农24 分钟前
C/C++动态库函数导出 windows
c语言·开发语言·c++
m0_6312704026 分钟前
标准c语言(一)
c语言·开发语言·算法
万河归海42826 分钟前
C语言——二分法搜索数组中特定元素并返回下标
c语言·开发语言·数据结构·经验分享·笔记·算法·visualstudio