- 引入poi依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
- 设置字体相关样式代码
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) {
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);
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));
}
- 单元格设置,合并单元格,设置超链接
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();
}
}
private static void margeCell(XSSFWorkbook workbook) {
XSSFSheet sheet = workbook.createSheet();
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);
hyperlink.setAddress("跳转sheet页!A10");
cell2.setHyperlink(hyperlink);
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);
}