编程语言
首页 > 编程语言> > java 写入excel表,设置超链接单元格

java 写入excel表,设置超链接单元格

作者:互联网

XSSF

List<String[]> allAIItems; // 将allAIItems写入excel,第一列为超链接(图片地址)

try {
    // 定义输出流os,指向要生成的报告文件
    OutputStream output = new FileOutputStream(file, true);

    // 创建生成EXEL文件的对象
    XSSFWorkbook workbook = new XSSFWorkbook();

    // 创建Excel工作表 指定名称和位置
    XSSFSheet sheet = workbook.createSheet("sheet名称");

    // 使用poi框架写入表头字段
    XSSFCellStyle headStyle = sheet.getWorkbook().createCellStyle(); // 单元格设置样式
    headStyle .setAlignment(HSSFCellStyle.ALIGN_CENTER); // 中间对齐
    headStyle .setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index); // 添加前景色
    headStyle .setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 设置前景色显示样式
    headStyle .setBorderBottom(HSSFCellStyle.BORDER_THIN); // 边框
    headStyle .setBorderLeft(HSSFCellStyle.BORDER_THIN);
    headStyle .setBorderRight(HSSFCellStyle.BORDER_THIN);
    headStyle .setBorderTop(HSSFCellStyle.BORDER_THIN);
	// 定义Excel的表头
    String[] title = { "第1个特征", "第2个特征", "第3个特征" };
      // 第一行
    Row row = sheet.createRow(0);
    // 定义cell
    Cell cell = null;
    cell = row.createCell(0);
    cell.setCellValue(title[0]);
    cell.setCellStyle(headStyle);
    
    cell = row.createCell(1);
    cell.setCellValue(title[1]);
    cell.setCellStyle(headStyle);

    cell = row.createCell(2);
    cell.setCellValue(title[2]);
    cell.setCellStyle(headStyle);

    // 为sheet的参数、图片、指标部分设置样式
    XSSFCellStyle bodystyle = sheet.getWorkbook().createCellStyle(); // 单元格设置样式      
    bodystyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 垂直居中
    bodystyle.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index); // 添加前景色
    bodystyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 设置前景色显示样式
    bodystyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置边框
    bodystyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    bodystyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
    bodystyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
    bodystyle.setWrapText(true); //设置自动换行

    // 追加数据 从第二行开始
    for (int i = 0; i < allAIItems.size(); i++) {
        Row nextrow = sheet.createRow(i + 1); // 创建行
        String[] item = allAIItems.get(i);
        for (int j = 0; j < item.length; j++) {
            Cell cell2 = nextrow.createCell(j); // 在当前行中创建列的cell
            if (j == 0) {
                // 超链接设置方式1:
                //String formu = "=HYPERLINK(\"" + item[j] + "\",\"" + value + "\")";
                //String formu = "=HYPERLINK(\"" + item[j] + "\")";
                //cell2.setCellValue(formu);
                
                // 超链接设置方式2:
                String formu1 = "HYPERLINK(\"" + item[j] + "\")";
                cell2.setCellFormula(formu1); // 创建超链接类型的单元格
                cell2.setCellStyle(bodystyle);
            } else {
                cell2.setCellValue(item[j]);
                cell2.setCellStyle(bodystyle);
            }
        }
    }
    
    // 写入工作表
    workbook.write(output);
    output.close();
    monitor.done();
    System.out.println("文件已保存于:" + file.getPath()); // 测试文件输出的路径
} catch (Exception e) {
    e.printStackTrace();
}

标签:java,单元格,excel,cell,bodystyle,THIN,HSSFCellStyle,headStyle,BORDER
来源: https://blog.csdn.net/weixin_42340194/article/details/120772445