Java 中如何给POI生成的Excel文件添加 Border?

Java 中如何给POI生成的Excel文件添加 Border,
如下图所示:
image.png

阅读 1.1k
avatarAI BotBETA

首先,我们需要使用 CellStyle 类来创建一个带有边框的样式。然后,将此样式应用于我们想要添加边框的单元格。以下是如何做到这一点的示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        Workbook workbook = new XSSFWorkbook(); // 创建新的Excel 工作簿
        Sheet sheet = workbook.createSheet("My Sheet"); // 创建新的工作表
        Row row = sheet.createRow(0); // 创建新的行
        Cell cell = row.createCell(0); // 创建新的单元格

        // 创建带有边框的样式
        CellStyle style = workbook.createCellStyle();
        style.setBorderTop(BorderStyle.THIN);
        style.setBorderBottom(BorderStyle.THIN);
        style.setBorderLeft(BorderStyle.THIN);
        style.setBorderRight(BorderStyle.THIN);

        // 将样式应用于单元格
        cell.setCellStyle(style);

        // 设置单元格的值
        cell.setCellValue("Hello, World!");

        // 将工作簿写入文件
        FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
        workbook.write(fileOut);
        fileOut.close();
    }
}

这段代码将创建一个新的Excel文件 workbook.xlsx,其中包含一个带有边框的单元格。这个单元格位于第一个行和第一个列,其值为 "Hello, World!"。所有四个边框都设置为薄边框。

1 个回答

补充一下上面AI中的Main方法:

/*
https://demo.grapecity.com.cn/documents-api-excel-java/demos/
addingborderstorange?devLang=java
*/
// Create a new workbook
Workbook workbook = new Workbook();

IWorksheet worksheet = workbook.getWorksheets().get(0);
IRange rangeB2_E6 = worksheet.getRange("B2:E6");

//set left, top, right, bottom borders together.
rangeB2_E6.getBorders().setLineStyle(BorderLineStyle.DashDot);
rangeB2_E6.getBorders().setColor(Color.GetGreen());

//set inside horizontal border.
rangeB2_E6.getBorders().get(BordersIndex.InsideHorizontal).setLineStyle(BorderLineStyle.Dashed);
rangeB2_E6.getBorders().get(BordersIndex.InsideHorizontal).setColor(Color.GetTomato());

//set inside vertical border.
rangeB2_E6.getBorders().get(BordersIndex.InsideVertical).setLineStyle(BorderLineStyle.Double);
rangeB2_E6.getBorders().get(BordersIndex.InsideVertical).setColor(Color.GetBlue());

//set top border individually.
rangeB2_E6.getBorders().get(BordersIndex.EdgeTop).setLineStyle(BorderLineStyle.Medium);
rangeB2_E6.getBorders().get(BordersIndex.EdgeTop).setColor(Color.GetRed());

    
// Save to an excel file
workbook.save("AddingBordersToRange.xlsx");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题