当我尝试创建xlsx时,我一直在创建标头。我能够创建一个包含行和合并单元格的文件,但标题似乎无法工作。这是我有什么:未创建Apache POI XSSF标头
var WorkBook = CreateObject(
"java",
"org.apache.poi.xssf.usermodel.XSSFWorkbook"
).Init();
var Sheet = WorkBook.CreateSheet(
JavaCast("string", 'my sheetname')
);
// create the default header if it doesn't exist
var header = sheet.getHeader(); // have also tried getEvenHeader() and getOddHeader()
header.setText('&LLeft Section');
// have also tried the following:
//header.setLeft('left header');
//header.setCenter('CENTER');
//header.setRight('right header');
// open the file stream
var FileOutputStream = CreateObject(
"java",
"java.io.FileOutputStream"
).Init(
JavaCast("string", filename)
);
// Write the workbook data to the file stream.
WorkBook.Write(
FileOutputStream
);
// Close the file output stream.
FileOutputStream.Close();
当我运行此代码,没有错误引发。该文件已创建并可以打开而不会引发任何错误,但不会显示标题。就像我所说的,如果我创建的是行/单元而不是头,那么这些都是正确创建的。我错过了什么?
编辑: 正如Leigh指出的那样,标题/页脚在Excel中的含义与我对它们的想法不同(如在PDF中)。我在Excel中添加一个标题显示它在第一行上方,并且认为通过POI添加一个会做同样的事情。
愚蠢的问题,而是你是如何验证头是不存在?它们应该只在打印时出现(或在打印预览中)。 FWIW,上面的代码在填充至少一个单元格后(即所以需要打印的东西)对我来说工作得很好。 – Leigh
“Header”是什么意思?工作表中的第一行?打印头?还有别的吗? – Gagravarr
@Leigh Hmmmm .....我以为他们应该显示,因为当我在Excel中插入标题时,它确实出现在第一行的上方。我有(显然是错误的)假设,如果我以编程方式创建头,它会以相同的方式出现。所以在Excel中,打印时严格使用页眉/页脚?我想现在我觉得这是有道理的。在D'oh下的文件! – earachefl