位置
//在类 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();
}
}