POL 工具 Excel 设置某一列单元格格式为"文本"

1,928 阅读1分钟

问题如下: 设置模板时,如果没有设置单元格格式为文本,长串数字 将会被篡改

image.png

解决方法1:逐步设置单个单元格格式为文本,直接贴上代码

@Test
public void testWrite07() throws Exception {
    //创建工作簿
    Workbook workbook = new XSSFWorkbook();
    //在工作簿中出创建出sheet,并命名
    Sheet sheet = workbook.createSheet("疫苗接种统计");
    //创建行第一行
    Row row = sheet.createRow(0);
    //在第一行创建出第1个单元格 ,位置 为 1-1
    Cell cell11 = row.createCell(0);
    //写入文字
    cell11.setCellValue("今日接种人数统计");
    //在第一行创建出第2个单元格, 位置 为 1-2
    Cell cell12 = row.createCell(1);
    //写入位子
    cell12.setCellValue("666人");

    //设置单元格格式为文本格式
    CellStyle cellStyle = workbook.createCellStyle();
    DataFormat dataFormat = workbook.createDataFormat();
    cellStyle.setDataFormat(dataFormat.getFormat("@"));
    //设置第一行为文本格式
    cell11.setCellStyle(cellStyle);//设置位置为1-1的单元格的格式为文本格式
}

解决方法2:直接设置整列的单元格格式为"文本",直接贴上代码

@Test
public void testWrite07() throws Exception {
    //创建工作簿
    Workbook workbook = new XSSFWorkbook();
    //在工作簿中出创建出sheet,并命名
    Sheet sheet = workbook.createSheet("疫苗接种统计");

    CellStyle cellStyle = workbook.createCellStyle();
    DataFormat dataFormat = workbook.createDataFormat();
    cellStyle.setDataFormat(dataFormat.getFormat("@"));//这个风格代表的是文本格式
    sheet.setDefaultColumnStyle(1, cellStyle);//设置第1列,对应格式
    sheet.setDefaultColumnStyle(2, cellStyle);//设置第2列,对应格式
    sheet.setDefaultColumnStyle(3, cellStyle);//设置第3列,对应格式

    //创建行第一行
    Row row = sheet.createRow(0);
    //在第一行创建出第1个单元格 ,位置 为 1-1
    Cell cell11 = row.createCell(0);
    //写入文字
    cell11.setCellValue("今日接种人数统计");
    //在第一行创建出第2个单元格, 位置 为 1-2
    Cell cell12 = row.createCell(1);
    //写入位子
    cell12.setCellValue("666人");

}

因为列是从0开始,所以会发现如下图,0列和4列还是常规格式, 1列.2列.3列为文本格式;如下图

image.png