我正在使用poi(java)创建一个excel(.xlsx)文件.创建excel文件后,我将excel文件Author视为"Apache POI".有什么方法可以改变吗?
这是我用来创建excel文件的代码......
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class CreateExcelFile {
public static void main(String[] args) {
/** Name of excel file that we are going to create **/
String fileName = "C:\\temp\\testPOIWrite.xlsx";
writeDataToExcelFile(fileName);
}
/** This method writes data to new excel file **/
private static void writeDataToExcelFile(String fileName) {
String[][] excelData = preapreDataToWriteToExcel();
XSSFWorkbook myWorkBook = new XSSFWorkbook();
Sheet mySheet = myWorkBook.createSheet();
Row myRow = null;
Cell myCell = null;
for (int rowNum = 0; rowNum < excelData[0].length; rowNum++) {
myRow = mySheet.createRow(rowNum);
for (int cellNum = 0; cellNum < 4; cellNum++) {
myCell = myRow.createCell(cellNum);
myCell.setCellValue(excelData[rowNum][cellNum]);
}
}
try {
FileOutputStream out = new FileOutputStream(fileName);
myWorkBook.write(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/** Prepare some demo data as excel file content **/
public static String[][] preapreDataToWriteToExcel() {
String[][] excelData = new String[4][4];
excelData[0][0] = "First Name";
excelData[0][1] = "Last Name";
excelData[0][2] = "Telephone";
excelData[0][3] = "Address";
excelData[1][0] = "Kushal";
excelData[1][1] = "Paudyal";
excelData[1][2] = "000-000-0000";
excelData[1][3] = "IL,USA";
excelData[2][0] = "Randy";
excelData[2][1] = "Ram Robinson";
excelData[2][2] = "111-111-1111";
excelData[2][3] = "TX, USA";
excelData[3][0] = "Phil";
excelData[3][1] = "Collins";
excelData[3][2] = "222-222-2222";
excelData[3][3] = "NY, USA";
return excelData;
}
}
Run Code Online (Sandbox Code Playgroud)
Oli*_*and 21
这非常简单:
HSSF:
SummaryInformation summaryInfo = workbook.getSummaryInformation();
summaryInfo.setAuthor(author);
Run Code Online (Sandbox Code Playgroud)
XSSF:
POIXMLProperties xmlProps = workbook.getProperties();
POIXMLProperties.CoreProperties coreProps = xmlProps.getCoreProperties();
coreProps.setCreator(author);
Run Code Online (Sandbox Code Playgroud)
玩得开心 :)
不是直接的答案,但如果有人需要在NPOI(POI的.NET端口)中执行此操作,这里是我提出的扩展方法......它基本上是Olivier建议的 - 只在C#中实现:
/// <summary>
/// Sets the author of this workbook.
/// </summary>
/// <param name="workbook"></param>
/// <param name="author"></param>
public static void SetAuthor(this IWorkbook workbook, string author)
{
if (workbook is NPOI.XSSF.UserModel.XSSFWorkbook)
{
var xssfWorkbook = workbook as NPOI.XSSF.UserModel.XSSFWorkbook;
var xmlProps = xssfWorkbook.GetProperties();
var coreProps = xmlProps.CoreProperties;
coreProps.Creator = author;
return;
}
if (workbook is NPOI.HSSF.UserModel.HSSFWorkbook)
{
var hssfWorkbook = workbook as NPOI.HSSF.UserModel.HSSFWorkbook;
var summaryInfo = hssfWorkbook.SummaryInformation;
if (summaryInfo != null)
{
summaryInfo.Author = author;
return;
}
var newDocInfo = NPOI.HPSF.PropertySetFactory.CreateDocumentSummaryInformation();
var newInfo = NPOI.HPSF.PropertySetFactory.CreateSummaryInformation();
newInfo.Author = author;
hssfWorkbook.DocumentSummaryInformation = newDocInfo;
hssfWorkbook.SummaryInformation = newInfo;
return;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12068 次 |
| 最近记录: |