वहाँ वर्तमान स्रोत कोड में कोई सीधा तरीका है:
यह कैसे शैली बनाया जाता है :
public short getNumCellStyles()
{
return (short) workbook.getNumExFormats();
}
साथ
public HSSFCellStyle createCellStyle()
{
...
ExtendedFormatRecord xfr = workbook.createCellXF();
short index = (short) (getNumCellStyles() - 1);
HSSFCellStyle style = new HSSFCellStyle(index, xfr, this);
return style;
}
और (InternalWorkbook में)
public int getNumExFormats() {
...
return numxfs;
}
और कार्यपुस्तिका के साथ।createCellXF() को हल करने:
InternalWorkbook getWorkbook() {
return workbook;
}
और फिर InternalWorkbook वस्तु पर:
public ExtendedFormatRecord getExFormatAt(int index) {
int xfptr = records.getXfpos() - (numxfs - 1);
xfptr += index;
ExtendedFormatRecord retval =
(ExtendedFormatRecord) records.get(xfptr);
return retval;
}
public void removeExFormatRecord(ExtendedFormatRecord rec) {
records.remove(rec); // this updates XfPos for us
numxfs--;
}
तो यह सुनिश्चित करने के लिए
public ExtendedFormatRecord createCellXF() {
ExtendedFormatRecord xf = createExtendedFormat();
records.add(records.getXfpos()+1, xf);
records.setXfpos(records.getXfpos() + 1);
numxfs++;
return xf;
}
तो क्या HSSFWorkbook से संभव है, कॉल करने के लिए है लघु कार्यपुस्तिका से छोटा, इस तरह कुछ:
InternalWorkbook w = workbook.getWorkbook();
ExtendedFormatRecord record = w.getExFormatAt(index);
w.removeExFormatRecord(record);
यह सब बहुत ही भयानक है :)
स्रोत
2012-10-02 06:32:54
ऐसा लगता है कि यह नौकरी करना चाहिए ... लेकिन इसे चलाने से वास्तव में कुछ भी नहीं होता है! मैं बाद में इसे फिर से डीबग करने की कोशिश करूंगा। – AhHatem