这是 Office 文件属性的一部分。与作者所在的属性集合相同。请参阅 在 Apache poi 生成的 excel 中更改作者。
HSSFWorkbook
是一个 POIDocument,其中包含 SummaryInformation。
XSSFWorkbook
是一个 POIXMLDocument,它具有 POIXMLProperties - POIXMLProperties.CoreProperties.
因此,对于这两种工作簿类型,可以像这样设置标签(又名关键字):
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
class CreateExcelAuthorAndKeywords {
public static void main(String[] args) throws Exception {
String author = "Axel Richter";
String keywords = "Keyword1, Keyword2, Keyword3";
Workbook workbook = new XSSFWorkbook();
//Workbook workbook = new HSSFWorkbook();
workbook.createSheet();
if (workbook instanceof XSSFWorkbook) {
((XSSFWorkbook)workbook).getProperties().getCoreProperties().setCreator(author);
((XSSFWorkbook)workbook).getProperties().getCoreProperties().setKeywords(keywords);
} else if (workbook instanceof HSSFWorkbook) {
((HSSFWorkbook)workbook).createInformationProperties();
((HSSFWorkbook)workbook).getSummaryInformation().setAuthor(author);
((HSSFWorkbook)workbook).getSummaryInformation().setKeywords(keywords);
}
String fileName = (workbook instanceof XSSFWorkbook)?"Excel.xlsx":"Excel.xls";
try (FileOutputStream out = new FileOutputStream(fileName) ) {
workbook.write(out);
}
workbook.close();
}
}