Java 为 Excel 中的行设置交替背景色

在制作Excel表格时,通过将数据表中上下相邻的两行用不同的背景色填充,可以使各行的数据看起来更清楚,避免看错行,同时也能增加Excel表格的美观度。本文将介绍如何在Java程序中为 Excel 奇数行和偶数行设置交替背景色。

使用工具Free Spire.XLS for Java (免费版)

Jar文件导入方法

方法一:

下载最新的Free Spire.XLS for Java包并解压缩,然后从lib文件夹下,将Spire.Xls.jar包导入到你的Java应用程序中。(导入成功后如下图所示)

方法二:

通过Maven仓库安装导入。详细的操作步骤请参考链接(https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html

Java代码示例

 

import com.spire.xls.*;

import java.awt.*;

public class ConditionalFormatting {

    public static void main(String[] args) {

        //创建Workbook对象
        Workbook workbook = new Workbook();

        //加载一个Excel文档
        workbook.loadFromFile("C:\\Users\\Administrator\\IdeaProjects\\XLS\\sample.xlsx");

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

        //获取有数据的区域
        CellRange dataRange = sheet.getAllocatedRange();

        //使用条件格式将偶数行的背景色设为浅灰色
        ConditionalFormatWrapper format1 = dataRange.getConditionalFormats().addCondition();
        format1.setFirstFormula("=MOD(ROW(),2)=0");
        format1.setFormatType(ConditionalFormatType.Formula);
        format1.setBackColor(Color.lightGray);

        //使用条件格式将奇数行的背景色设为黄色
        ConditionalFormatWrapper format2 = dataRange.getConditionalFormats().addCondition();
        format2.setFirstFormula("=MOD(ROW(),2)=1");
        format2.setFormatType(ConditionalFormatType.Formula);
        format2.setBackColor(Color.yellow);

        //保存文档
        workbook.saveToFile("交替背景色.xlsx", ExcelVersion.Version2016);
    }
}

交替背景色效果图:

原文地址:https://www.cnblogs.com/jazz-z/p/12665819.html

时间: 2024-11-10 14:13:05

Java 为 Excel 中的行设置交替背景色的相关文章

Java处理Excel中的日期格式

Java处理Excel中的日期格式 2011-12-23 17:34:03|  分类: java |举报 |字号 订阅 下载LOFTER 我的照片书  | 在Excel中的日期格式,其数值为距离1900年1月1日的天数,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理.正确的处理方法是先判断单元格的类型是否则NUMERIC

Java向Excel中插入图片

Java向Excel中插入图片 import java.io.FileOutputStream; import java.io.File; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.awt.image.BufferedImage; import javax.imageio.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; im

用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法

用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count ActiveSheet.UsedRange.Columns.Count 缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除), 用这个命令仍返回未清除前的值.就是说现在虽然是空的,但是你曾经用过也算你的. 方法2: ActiveSheet.Range("A65535

JAVA将Excel中的报表导出为图片格式(三)换一种实现

上一篇介绍了使用Java的Robot机器人实现截图,然后将剪贴板上的数据流生成PNG图片 但是经过博主的不断测试,在完全依赖远程桌面的没有终端显示器的服务器上 使用截图方式是不可行的,因为一旦使用了远程桌面,再断开桌面,系统后台执行的截图程序会全部截到黑屏 所以博主不得已去用另一种通用方式生成PNG 这就是要使用Apache公司的POI工具,对整个excel进行解析 将excel的每一个单元格,数据,格式,边框全都读取出来 其中需要考虑到单元格的合并,行列的隐藏等等复杂的问题 最终使用JAVA

c#.net循环将DataGridView中的数据赋值到Excel中,并设置样式

Microsoft.Office.Interop.Excel.Application excel =                new Microsoft.Office.Interop.Excel.Application();            excel.SheetsInNewWorkbook = 1;            excel.Workbooks.Add(); //设置Excel列名            excel.Cells[1, 1] = "学号";     

java程序转换excel中科学记数法的数据为date类型

今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能. 但是导出后出现了一个问题,里边有一列存储时间的,存储的是long型毫秒数,在导出后就自动变成了科学记数法. 且不说从科学记数法中辨别出实际时间,即便是原本的毫秒值也是不易于辨别的,但是这些long值不能直接在excel中转换成date类型,因此我便想到使用poi来把这些毫秒值转换成date再写入原文件中. 从mongodb中导出的excel的科学记数法如下图: j

用java将excel中数据导入mysql

java的poi技术读取Excel数据到MySQL 这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 :java的jxl技术导入Excel  项目结构: Excel中的测试数据: 数据库结构: 对应的SQL: 1 CREATE TABLE `student_info` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT

JAVA读取Excel中sheet页内容

package com.bestpay.bpbp.bill.init; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import java.io.File; import java.io.IOException; public class ReadExcelDataForTestNG {    private static  String parementF

[JAVA] 冻结Excel的第一行或第一列

可以按照如下设置创建冻结窗口. sheet.createFreezePane( 3, 2, 3, 2 ); 前两个参数是你要用来拆分的列数和行数.后两个参数是下面窗口的可见象限,其中第三个参数是右边区域可见的左边列数,第四个参数是下面区域可见的首行. // 冻结第一行 sheet.createFreezePane( 0, 1, 0, 1 ); // 冻结第一列 sheet.createFreezePane( 1, 0, 1, 0 );