📜  如何使用Java在电子表格中创建不同数据格式的单元格?

📅  最后修改于: 2022-05-13 01:54:22.365000             🧑  作者: Mango

如何使用Java在电子表格中创建不同数据格式的单元格?

excel中的格式化是excel中的一个巧妙技巧,用于更改工作表中表示的数据的外观,格式化可以通过多种方式完成,例如我们可以使用样式来格式化单元格的数据。默认情况下,所有工作表单元格都采用常规数字格式。使用常规格式,您在单元格中键入的任何内容通常都保持原样。

示例:如果在单元格中输入 11111.25,然后将格式设置为“0.0”,则表示小数点后只有一位,单元格内容显示为 11111.3。这种格式用于根据要求获取准确的数据。让我们讨论一下如何使用Java来做到这一点。

方法:

  1. 导入所有必要的 .jar 文件,如 XSSF、XML。
  2. 创建工作簿实例
  3. 在上述工作簿中创建一个电子表格。
  4. 使用 XSSFRow 创建行
  5. 使用 XSSFCell 创建一个单元格。
  6. 设置单元格值。
  7. 使用 XSSFCellStyle 创建样式,我们将在其中应用不同的样式。
  8. 设置格式数据。
  9. 通过定义 FileOutputStream 类型的对象将内容写入工作簿
  10. 关闭文件的连接。

程序:

  1. 在 Eclipse 中创建一个 Maven 项目并添加 Apache POI(用于设置单元格的值类型)并导入所有必要的 .jar 文件,如 HSSF、XML。
  2. 为工作簿命名。
  3. 使用“new XSSFWorkbook()”创建一个工作簿,我们必须在其中创建电子表格。
  4. 使用“workbook.createSheet('Sheet1')”在工作簿中创建一个电子表格,并将工作表的名称命名为“Sheet1”
  5. 使用 XSSFRow 创建一行。行是基于 0 的。
  6. 使用 XSSFCell 创建一个单元格。
  7. 使用 XSSFCellStyle 创建样式,我们将在其中应用不同的样式。
  8. 使用 DataFormat “workbook.createDataFormat()” 创建格式以在单元格中应用自定义格式。
  9. 使用 cell.setCellValue() 为单元格设置值;
  10. 将格式应用于特定单元格。根据要求重复此步骤以使用 style.setDataFormat(format.getFormat(“”)); 创建格式化单元格。格式类型应该是字符串类型。
  11. 将输出文件放在默认位置,并使用 FileOutputStream() 保存在 try-catch 块中。
  12. 使用 workbook.write() 将其写入在初始步骤中创建的工作簿;
  13. 关闭输出文件。
  14. 当程序成功执行时显示控制台窗口的消息。
  15. 当程序不成功时显示控制台窗口的错误消息,此语句保留在 catch 块中。

例子:

Java
// Java Program to Apply Different Data Formats to
// a Cell in a Spreadsheet
 
// Importing required classes
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
        // Naming of WorkBook
        String excelfilename = "GeeksForGeeks.xlsx";
 
        // Creating a WorkBook
        XSSFWorkbook workbook = new XSSFWorkbook();
 
        // Create a Spread Sheet by creating an object of
        // XSSFSheet and also give name
        XSSFSheet spreadsheet
            = workbook.createSheet("Sheet1");
 
        // Create a row and put some cells in it. Rows are 0
        // based.
        XSSFRow row;
 
        // Creating a cell
        XSSFCell cell;
 
        // style
        XSSFCellStyle style;
 
        // Creating format to format style
        DataFormat format = workbook.createDataFormat();
        int rowNum = 0;
        int colNum = 0;
 
        // Creating a row in Spread Sheet
        row = spreadsheet.createRow(rowNum++);
 
        // Creating a cell in row
        cell = row.createCell(colNum);
 
        // Setting a value
        cell.setCellValue(11111.25);
 
        style = workbook.createCellStyle();
 
        // Setting a Format to a cell using style
        style.setDataFormat(format.getFormat("0.0"));
        cell.setCellStyle(style);
 
        row = spreadsheet.createRow(rowNum++);
        cell = row.createCell(colNum);
        cell.setCellValue(11111.25);
        style = workbook.createCellStyle();
 
        // Creating another format using style
        style.setDataFormat(format.getFormat("#,##0.0000"));
        cell.setCellStyle(style);
 
        // Try block to check for exceptions
        try {
 
            // Place the output file in default location and
            // also kept in try catch block
            FileOutputStream outputfile
                = new FileOutputStream(excelfilename);
 
            // Writing to workbook
            workbook.write(outputfile);
 
            // Closing the output file
            // using close() method
            outputfile.close();
 
            // Display message for console window when
            // program is successfully executed
            System.out.println(excelfilename
                               + " is written successfully");
        }
 
        // Catch block to handle exceptions
        catch (FileNotFoundException e) {
 
            // Display error message for console window when
            // program is not successfully executed
            System.out.println("ERROR!! " + e.getMessage());
        }
    }
}



输出:在控制台窗口 

A.当程序成功执行时。

GeeksForGeeks.xlsx is written successfully.

B.当程序没有成功执行时。

ERROR!! GeeksForGeeks.xlsx (The process cannot access the file because it is being used by another process)

输出:工作簿(excel文件)