当前位置: 首页 > 知识库问答 >
问题:

未创建Apache POI XSSF头

颛孙镜
2023-03-14

在我尝试创建xlsx时,我一直在创建头文件。我可以创建一个包含行和合并单元格的文件,但标题似乎从来都不起作用。以下是我所拥有的:

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添加一个标题也会做同样的事情。

共有1个答案

邓仲卿
2023-03-14

(从评论中提升,以防答案对下一个家伙有帮助)

愚蠢的问题,但是你如何验证标题不存在?在Excel中,页眉和页脚只能在打印时(或在打印预览模式下)可见。

...页眉和页脚不会以普通视图显示在工作表上-它们仅在页面布局视图和打印页面上显示。

FWIW,在我填充了至少一个单元格(所以有东西要打印)之后,在CF10和CF11下,代码对我来说运行良好。

trycf上的可运行示例。通用域名格式

<cfscript>
    workBook = CreateObject( "java", "org.apache.poi.xssf.usermodel.XSSFWorkbook").Init();
    sheet = WorkBook.CreateSheet( JavaCast( "string", 'my sheetname' ) );
    header = sheet.getHeader(); // have also tried getEvenHeader() and getOddHeader()
    header.setText('&LLeft Section');
    // add some data so there is something to print
    sheet.createRow(0).createCell(0).setCellValue("sample value");
    // Using binary stream because trycf.com does not support files for security reasons
    baos = createObject("java", "java.io.ByteArrayOutputStream").init();
    // Write the workbook data to the binary stream
    workBook.write( baos );
    baos.close();
</cfscript>

<!--- CF10 lacks support for script version of cfcontent --->
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    variable="#baos.toByteArray()#">
 类似资料:
  • 我有一个使用log4j1的应用程序。我在log4j.properties中的配置工作正常,它为日志创建文件。 我迁移到log4j2,现在没有创建文件,尽管我遵循了文档。我在这里尝试了所有不同的解决方案,但我无法实现。 这是我的应用程序中的log4j2.xml内部资源 这是我pom.xml的依赖 我厌倦了用完整路径更改文件的路径,在权限问题时更改文件夹。 我没有任何错误,但是当应用程序运行时,我看不

  • 我在这里遵循这个例子:-http://www.baeldung.com/spring-graphql 对我来说,GraphQL架构bean没有被自动注册。它抛给我这个错误:-没有合格的bean类型'graphql.schema.GraphQL架构'可用 我的Pom文件具有所有需要的Spring Boot依赖项:- 我在应用程序中有以下设置。属性:- 不确定我错过了什么,我是否需要在此页面上明确定义

  • 问题内容: 当前,当浏览器浏览器浏览到网页时,我正在运行一个php脚本。我想做的是在脚本运行时编写一个存储变量的文本文件。文件夹的所有者是apache,但每个人都具有读写功能,严格出于测试目的。(我认为这可能是权限问题)服务器上启用了SELINUX,当我从控制台运行脚本时,它会在正确的目录中很好地创建文本文件。 我正在使用此行尝试编写和创建文本文件,我知道我的文件位置可以正常运行,因为我可以在脱机

  • 问题内容: 我正在使用Eclipse和jdk1.7。我正在使用文件处理程序制作一个基本程序,其中将在目录内创建一个输出目录。但是,当我运行该程序时,输出显示为false并且未创建目录。我以为输出错误,因为存在同名目录,但这不是原因。所以我需要帮助。这是我的代码: 其输出为false,但尚未创建目录。我该如何解决这个问题?这不仅在此程序中-我在其中调用该方法的每个程序都存在相同的问题。 问题答案:

  • 我正在使用docker-maven-plugin为Java微服务创建一个dockerfile和docker映像。当我运行命令时,它不会创建DockerFile。 下面是pom.xml中构建任务的配置: 没有错误消息,但没有dockefile。下面是我运行时向屏幕发出的消息:

  • 我要用Kafka流计算平均值。所以我做了一个有状态的操作,聚合,需要创建一个状态存储,但是这种情况不会发生。 这里是平均值的函数: 以下是例外情况: 问题是基本目录不存在,但我希望kafka流在必要时创建目录。 编辑 ----- 我注意到,如果我有1个处理器,使一个变量的平均值没有问题,但如果我有2个处理器是。 1个处理器的配置文件: 2个处理器的配置文件: 现在我启动处理器: 类型元组包含配置文