Смена автора в excel сгенерирована Apache poi - PullRequest
0 голосов
/ 05 апреля 2019

Мне нужно изменить имя автора сгенерированного Excel на Apache Poi в Java.В настоящее время автором всех сгенерированных apache имен является «Apache POI», мне нужно его изменить.кто-нибудь может мне помочь в этом?

Спасибо заранее. Генерируется Apache poi

1 Ответ

1 голос
/ 05 апреля 2019

HSSFWorkbook - это POIDocument , который имеет Сводная информация .

XSSFWorkbook - это POIXMLDocument , который имеет POIXMLProperties - POIXMLProperties.CoreProperties .

Код для указания автора (он же создатель) для XSSF и HSSF:

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 CreateExcelAuthor {

 public static void main(String[] args) throws Exception {

  String author = "Axel Richter";

  Workbook workbook = new XSSFWorkbook(); 
  //Workbook workbook = new HSSFWorkbook();

  workbook.createSheet(); 

  if (workbook instanceof XSSFWorkbook) {
   ((XSSFWorkbook)workbook).getProperties().getCoreProperties().setCreator(author); 
  } else if (workbook instanceof HSSFWorkbook) {
   ((HSSFWorkbook)workbook).createInformationProperties();
   ((HSSFWorkbook)workbook).getSummaryInformation().setAuthor(author);
  }

  String fileName = (workbook instanceof XSSFWorkbook)?"Excel.xlsx":"Excel.xls";
  try (FileOutputStream out = new FileOutputStream(fileName) ) {
   workbook.write(out);
  }
  workbook.close();

 }
}
...