Java 生成Excel 样式设置,超链接设置

  1. 引入poi依赖
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>
  1. 设置字体相关样式代码
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;

public class StyleStudy {

    public static void main(String[] args) {
        FileOutputStream out = null;
        XSSFWorkbook xSSFWorkbook = null;
        try {
            xSSFWorkbook = new XSSFWorkbook();
            setFontStyle(xSSFWorkbook);
            out = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\test\\study\\"+System.currentTimeMillis()+".xlsx"));
            xSSFWorkbook.write(out);
            System.out.println("EXCEL文件已生成=========");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    private static void setFontStyle(XSSFWorkbook workbook) {

        // 创建一个sheet页
        XSSFSheet sheet = workbook.createSheet();

        // 创建样式对象
        XSSFCellStyle style = workbook.createCellStyle();
        // 字体样式
        XSSFFont font = workbook.createFont();
        font.setFontName("宋体");// 字体类型
        font.setFontHeightInPoints((short) 16);// 字体大小
        font.setBold(true);// 加粗
        font.setColor(setColor(255,0,0));// 字体颜色
        font.setItalic(true);// 倾斜
        font.setUnderline(FontUnderline.SINGLE);// 下划线
        style.setFont(font);

        // 边框
        style.setBorderLeft(BorderStyle.THIN);// 左边细框
        style.setBorderTop(BorderStyle.DOUBLE);// 上粗边框
        style.setBorderRight(BorderStyle.HAIR);// 右虚线
        style.setBorderBottom(BorderStyle.DASH_DOT);// 下虚线

        // 填充色
        style.setFillForegroundColor(setColor(246,180,0));
        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

        // 是否自动换行,内容必须加\r\n
        style.setWrapText(true);

        // 内容对齐与居中
        style.setAlignment(HorizontalAlignment.CENTER);// 垂直居中
        style.setAlignment(HorizontalAlignment.LEFT);// 垂直左对齐
        style.setVerticalAlignment(VerticalAlignment.CENTER);// 水平居中
        style.setVerticalAlignment(VerticalAlignment.BOTTOM);// 水平向下

        XSSFRow row = sheet.createRow(0);
        row.createCell(0).setCellValue("字体类型为“宋体”,\n大小24,\n加粗,\n颜色红色,\n倾斜,\n带下划线");
        row.getCell(0).setCellStyle(style);
    }
    private static XSSFColor setColor(int r, int g, int b){
        return new XSSFColor(new Color(r,g,b));
    }
  1. 单元格设置,合并单元格,设置超链接
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;

public class StyleStudy {

    public static void main(String[] args) {
        FileOutputStream out = null;
        XSSFWorkbook xSSFWorkbook = null;
        try {
            xSSFWorkbook = new XSSFWorkbook();
            margeCell(xSSFWorkbook);
            out = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\test\\study\\"+System.currentTimeMillis()+".xlsx"));
            xSSFWorkbook.write(out);
            System.out.println("EXCEL文件已生成=========");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    /**
     * 单元格设置
     * @param workbook
     */
    private static void margeCell(XSSFWorkbook workbook) {
        XSSFSheet sheet = workbook.createSheet();

        // 合并单元格,1到4行,1到4列进行合并
        XSSFRow row1 = sheet.createRow(0);
        row1.createCell(0).setCellValue("合并单元格");
        sheet.addMergedRegion(new CellRangeAddress(0,3,0,3));

        /**
         * 设置超链接
         */
        XSSFRow row2 = sheet.createRow(4);
        XSSFCell cell2 = row2.createCell(0);
        cell2.setCellValue("另一个sheet页的指定位置");
        XSSFCreationHelper creationHelper = workbook.getCreationHelper();
        XSSFHyperlink hyperlink = creationHelper.createHyperlink(HyperlinkType.DOCUMENT);
        // 链接到此Excel的任何地方,以“!”分割,前面表示sheet的名字,没有则本sheet页进行跳转
        hyperlink.setAddress("跳转sheet页!A10");
        cell2.setHyperlink(hyperlink);
        // 创建第二个sheet页提供跳转
        XSSFSheet sheet1 = workbook.createSheet("跳转sheet页");
        sheet1.createRow(9).createCell(0).setCellValue("跳转到这里");

        // 链接到指定网站
        XSSFRow row3 = sheet.createRow(5);
        XSSFCell cell3 = row3.createCell(0);
        cell3.setCellValue("链接到百度网站");
        XSSFHyperlink hyperlink2 = creationHelper.createHyperlink(HyperlinkType.URL);
        hyperlink2.setAddress("https://www.baidu.com/");
        cell3.setHyperlink(hyperlink2);

        // 打开指定文件
        XSSFRow row4 = sheet.createRow(5);
        XSSFCell cell4 = row4.createCell(0);
        cell4.setCellValue("链接到指定文件");
        XSSFHyperlink hyperlink3 = creationHelper.createHyperlink(HyperlinkType.FILE);
        File file = new File("C:\\Users\\Administrator\\Desktop\\test\\4、图片文件\\01.jpg");
        String filePath = file.toURI().toString();
        System.out.println("文件路径:"+filePath);
        hyperlink3.setAddress(filePath);
        cell4.setHyperlink(hyperlink3);

    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel批量设置超链接可以通过以下步骤实现: 1. 首先,全选需要添加超链接的文件,按住Shift键并右键单击,选择"复制路径",将路径粘贴到Excel表格。 2. 给每个超链接命名,可以在相应的单元格输入名称。 3. 使用HYPERLINK函数来创建超链接。在需要设置超链接的单元格输入以下公式:=HYPERLINK("链接位置","显示文本")。其,链接位置是你要链接到的位置,可以是网页、文件、文件夹等;显示文本是你想要显示的文本,可以不填,不填时将直接显示链接路径。 4. 使用下拉填充功能,将公式应用到其他单元格,以完成批量设置超链接的操作。 举个例子,如果你想要将超链接链接到Sheet2的A1位置,并将链接命名为"name",可以在相应的单元格输入以下公式:=HYPERLINK("#sheet2!A1","name")。确保链接位置和显示文本都加上双引号,并且在sheet名和单元格地址之间加上感叹号。 如果你想要链接到Sheet2的A列,并且根据下拉填充自动增加链接位置和显示文本,可以使用以下公式:=HYPERLINK("#sheet2!A"&ROW(A1),sheet2!B1)。在链接位置,使用"&"符号和ROW(A1)来动态生成链接位置,使其随着下拉填充逐行增加。在显示文本,使用sheet2!B1来获取相应单元格的内容作为链接的显示文本。 希望这些步骤能帮助你批量设置超链接。 #### 引用[.reference_title] - *1* [Excel函数-HYPERLINK超链接的使用,可批量添加超链接](https://blog.csdn.net/weixin_50380723/article/details/129519600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [EXCEL批量添加超链接(下拉可使超链接位置递增)](https://blog.csdn.net/m0_60436247/article/details/121772713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值