Poi

2012-06-21 11 views
11

का उपयोग कर फ़ाइल एक्सेल फ़ाइल करने के लिए लेखक का नाम कैसे सेट करें मैं poi (जावा) का उपयोग कर एक्सेल (.xlsx) फ़ाइल बना रहा हूं। एक्सेल फ़ाइल बनाने के बाद मैं एक्सेल फ़ाइल लेखक को "अपाचे पीओआई" के रूप में देखता हूं। क्या इसे बदलने का कोई तरीका है?Poi

यहाँ कोड मैं एक्सेल फ़ाइल बनाने के लिए उपयोग कर रहा हूँ है ...

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; 

    } 
} 

उत्तर

15

यह बहुत सीधा है:

HSSF:

SummaryInformation summaryInfo = workbook.getSummaryInformation(); 
summaryInfo.setAuthor(author); 

XSSF:

POIXMLProperties xmlProps = workbook.getProperties();  
POIXMLProperties.CoreProperties coreProps = xmlProps.getCoreProperties(); 
coreProps.setCreator(author); 

मज़े :)

+0

तुम मुझे जानते XSSF के लिए इस xmlProps है क्या तो कृपया कर सकते हैं? – user1430989

+0

धन्यवाद .. मुझे मिल गया। – user1430989

+0

हैलो ओलिवियर कोइलैंड, एक्सएसएसएफ के मामले में यह अच्छा काम कर रहा है। लेकिन एचएसएसएफ के मामले में, SummaryInformation summaryInfo = workbook.getSummaryInformation(); summaryInfo शून्य है .. और काम नहीं कर रहा है .. – user1430989

5

नहीं एक सीधा जवाब है, लेकिन इस मामले में किसी को भी NPOI (POI का नेट बंदरगाह) में ऐसा करने की जरूरत है यहाँ विस्तार विधि मैं के साथ आया है ... यह मूल रूप से क्या ओलिवर है सुझाव दिया - केवल सी # में लागू:

/// <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; 
    } 
} 
संबंधित मुद्दे