1、pom.xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</dependency>
2、设置背景色(以不同颜色突出显示文本)
package test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
public class Test2 {
public static void main(String[] args) {
XWPFDocument document = new XWPFDocument();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File("I:\\test.docx"));
//段落
XWPFParagraph paragraph = document.createParagraph();
//具有相同属性的一个区域。
XWPFRun run = paragraph.createRun();
run.setBold(true); //加粗
run.setText("测试");
run.setColor("FF0000");
run = paragraph.createRun();
run.setText("背景色");
run.getCTR().addNewRPr().addNewHighlight().setVal(STHighlightColor.YELLOW);
run = paragraph.createRun();
CTShd shd = run.getCTR().addNewRPr().addNewShd();
shd.setFill("FFFF00");
run.setText("底纹");
document.write(fos);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3、16种背景色获取
/**
* 17 种标准色是 aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, yellow。
* @param color
* @return
* @date 2020年4月7日 下午7:16:39
*/
private static Enum getBackground(String color) {
color = color.replaceAll("\\s+", "");
if ("yellow".equals(color) || "rgb(255,255,0)".equals(color) || "#FFFF00".equals(color)) {
return STHighlightColor.YELLOW;//1-黄色
} else if ("lime".equals(color) || "rgb(0,255,0)".equals(color) || "#00FF00".equals(color)) {
return STHighlightColor.GREEN;//2-绿色
} else if ("aqua".equals(color) || "rgb(0,255,255)".equals(color) || "#00FFFF".equals(color)) {
return STHighlightColor.CYAN;//3-青色
} else if ("fuchsia".equals(color) || "rgb(255,0,255)".equals(color) || "#FF00FF".equals(color)) {
return STHighlightColor.MAGENTA;//4-粉红色
} else if ("blue".equals(color) || "rgb(0,0,255)".equals(color) || "#0000FF".equals(color)) {
return STHighlightColor.BLUE;//5-蓝色
} else if ("red".equals(color) || "rgb(255,0,0)".equals(color) || "#FF0000".equals(color)) {
return STHighlightColor.RED;//6-红色
} else if ("navy".equals(color) || "rgb(0,0,128)".equals(color) || "#000080".equals(color)) {
return STHighlightColor.DARK_BLUE;//7-深蓝色
} else if ("teal".equals(color) || "rgb(0,128,128)".equals(color) || "#008080".equals(color)) {
return STHighlightColor.DARK_CYAN;//8-深青色
} else if ("green".equals(color) || "rgb(0,128,0)".equals(color) || "#008000".equals(color)) {
return STHighlightColor.DARK_GREEN;//9-深绿色
} else if ("purple".equals(color) || "rgb(128,0,128)".equals(color) || "#800080".equals(color)) {
return STHighlightColor.DARK_MAGENTA;//10-深粉红色,紫色
} else if ("maroon".equals(color) || "rgb(128,0,0)".equals(color) || "#800000".equals(color)) {
return STHighlightColor.DARK_RED;//11-深红色
} else if ("olive".equals(color) || "rgb(128,128,0)".equals(color) || "#808000".equals(color)) {
return STHighlightColor.DARK_YELLOW;//12-深黄色
} else if ("gray".equals(color) || "rgb(128,128,128)".equals(color) || "#808080".equals(color)) {
return STHighlightColor.DARK_GRAY;//13-深灰色
} else if ("silver".equals(color) || "rgb(192,192,192)".equals(color) || "#C0C0C0".equals(color)) {
return STHighlightColor.LIGHT_GRAY;//14-浅灰色
} else if ("black".equals(color) || "rgb(0,0,0)".equals(color) || "#000000".equals(color)) {
return STHighlightColor.BLACK;//15-黑色
} else {
return STHighlightColor.NONE;//无色
}
}