彩票走势图

Spire.XLS系列教程:利用 Java设置 Excel 单元格的数字格式

翻译|使用教程|编辑:吉伟伟|2024-12-17 14:43:09.867|阅读 3 次

概述:在处理电子表格时,尤其是在专业和数据导向型环境中,正确设置 Excel 单元格内的数字格式至关重要。本文将介绍如何使用 Spire.XLS for Java 设置 Excel 单元格的数字格式,帮助轻松创建精美且结构清晰的电子表格。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

在处理电子表格时,尤其是在专业和数据导向型环境中,正确设置 Excel 单元格内的数字格式至关重要。恰当的数字格式不仅能让信息展示更加清晰和一致,还能根据其用途(如财务数据、百分比、日期或科学数值)确保其表现形式与数据性质相符。利用 Java 进行 Excel 任务自动化,程序化地设定合适的数字格式,能有效提升工作效率,降低出错几率,并增强报表或仪表盘的易读性。本文将介绍如何使用 Spire.XLS for Java 设置 Excel 单元格的数字格式,帮助轻松创建精美且结构清晰的电子表格。

Spire.XLS for.Java试用下载 

安装 Spire.XLS for Java

首先,您需要在 Java 程序中添加 Spire.Xls.jar 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>//repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>14.12.0</version>
    </dependency>
</dependencies>

用 Java 设置 Excel 单元格的数字格式

Spire.XLS for Java 为开发者提供了 CellRange.setNumberFormat() 方法,允许开发者使用 Excel 的数字格式代码为单元格设置数字显示格式。下表列出了 Excel 数字格式代码中常用的符号及其功能:

使用 Java 设置 Excel 单元格数字格式的详细步骤如下:

  • 创建一个 Workbook 对象。
  • 使用 Workbook.getWorksheets().get() 方法获取工作表。
  • 使用 CellRange.setValue() 方法添加字符串到指定单元格,或使用 CellRange.setNumberValue() 方法添加数值到指定单元格。
  • 使用 CellRange.setNumberFormat() 方法通过数字格式代码设置单元格的数字格式。
  • 使用 Workbook.saveToFile() 方法保存工作簿。
import com.spire.xls.*;

public class SetNumberFormat {
    public static void main(String[] args) {
        // 创建一个新的工作簿实例
        Workbook workbook = new Workbook();

        // 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 添加标题
        sheet.getCellRange("B1").setText("数字格式");
        sheet.getCellRange("B1").getCellStyle().getExcelFont().isBold(true);
        sheet.getCellRange("B1").getCellStyle().getExcelFont().setFontName("HarmonyOS Sans SC");
        sheet.getCellRange("B1:C1").merge();
        sheet.getCellRange("B1:C1").setHorizontalAlignment(HorizontalAlignType.Center);

        // 添加数字格式示例及对应的值
        // 添加正数格式示例
        addNumberFormatExample(sheet, "B3", "C3", "0", "1234.5678"); // 格式为整数
        addNumberFormatExample(sheet, "B4", "C4", "0.00", "1234.5678"); // 格式为保留两位小数
        addNumberFormatExample(sheet, "B5", "C5", "#,##0.00", "1234.5678"); // 格式为带千位分隔符且保留两位小数
        addNumberFormatExample(sheet, "B6", "C6", "$#,##0.00", "1234.5678"); // 格式为货币格式

        // 添加负数格式示例
        addNumberFormatExample(sheet, "B7", "C7", "0;[Red]-0", "-1234.5678"); // 格式为负数用红色显示
        addNumberFormatExample(sheet, "B8", "C8", "0.00;[Red]-0.00", "-1234.5678"); // 格式为保留两位小数,负数用红色显示

        // 添加科学计数法和百分比格式示例
        addNumberFormatExample(sheet, "B9", "C9", "0.00E+00", "1234.5678"); // 格式为科学计数法
        addNumberFormatExample(sheet, "B10", "C10", "0.00%", "0.5678"); // 格式为百分比

        // 添加日期和时间格式示例
        addNumberFormatExample(sheet, "B11", "C11", "yyyy-MM-dd", "44930.0"); // Excel 日期值对应 2023-01-01
        addNumberFormatExample(sheet, "B12", "C12", "HH:mm:ss", "0.75"); // Excel 时间值对应 18:00:00

        // 添加文本格式示例
        addNumberFormatExample(sheet, "B13", "C13", "@", "文本示例"); // 格式为文本

        // 设置格式
        sheet.getCellRange("B3:B13").getCellStyle().setKnownColor(ExcelColors.Gray25Percent);
        sheet.getCellRange("C3:C13").getCellStyle().setKnownColor(ExcelColors.Gray50Percent);
        sheet.setColumnWidth(2, 24);
        sheet.setColumnWidth(3, 24);

        // 将工作簿保存到文件
        workbook.saveToFile("output/设置Excel单元格数字格式.xlsx", FileFormat.Version2016);
        workbook.dispose();
    }

    /**
     * 向工作表指定的单元格中添加数字格式示例
     *
     * @param sheet        要修改的工作表
     * @param textCell     显示数字格式字符串的单元格
     * @param valueCell    显示格式化值的单元格
     * @param format       数字格式代码
     * @param value        要格式化的数值
     */
    private static void addNumberFormatExample(Worksheet sheet, String textCell, String valueCell, String format, String value) {
        sheet.getCellRange(textCell).setText(format); // 显示数字格式代码
        sheet.getCellRange(valueCell).setValue(value); // 添加数值
        // sheet.getCellRange(valueCell).setNumberValue(Double); // 或者使用 setNumberValue() 方法设置数值
        sheet.getCellRange(valueCell).setNumberFormat(format); // 应用数字格式
    }
}

用 Java 在 Excel 单元格中添加带数字格式的值

Spire.XLS for Java 支持通过 CellRange 类下的方法直接将带有特定数字格式的数据添加到 Excel 单元格中。下表概述了将带有常见数字格式的数据添加到单元格的方法及其描述:

向 Excel 单元格添加带数字格式的值的详细步骤如下:

  • 创建 Workbook 类的实例。
  • 使用 Workbook.getWorksheets().get() 方法获取工作表。
  • 使用 Worksheet.getCellRange() 方法获取一个单元格或单元格范围。
  • 使用 CellRange 类下的方法添加特定数字格式的值。
  • 根据需要设置单元格样式。
  • 使用 Workbook.saveToFile() 方法保存工作簿。
import com.spire.xls.*;

import java.util.Calendar;
import java.util.Date;

public class AddFormattedDataExcel {
    public static void main(String[] args) {
        // 创建一个新的工作簿实例
        Workbook workbook = new Workbook();

        // 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 添加文本值
        sheet.getCellRange("C3").setText("示例文本");
        // 添加数值
        sheet.getCellRange("C4").setNumberValue(1234.5678);
        // 添加布尔值
        sheet.getCellRange("C5").setBooleanValue(true);
        // 添加日期时间值
        sheet.getCellRange("C6").setDateTimeValue(new Date(2024, Calendar.DECEMBER, 12));
        // 添加 HTML 字符串
        sheet.getCellRange("C7").setHtmlString("加粗文本");

        // 格式化单元格
        sheet.getCellRange("C3:C7").setHorizontalAlignment(HorizontalAlignType.Center);
        sheet.getCellRange("C3:C7").setVerticalAlignment(VerticalAlignType.Center);
        sheet.getCellRange("C3:C7").getCellStyle().getExcelFont().setSize(14);
        for (int i = 3; i <= 7; i++) {
            sheet.autoFitColumn(i);
        }

        // 保存工作簿
        workbook.saveToFile("output/添加带数字格式的值到Excel.xlsx", FileFormat.Version2016);
        workbook.dispose();
    }
}

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询慧都在线客服  ;技术交流Q群(767755948)

慧都年终大促火热开启


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP