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