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

如何使用Apache POI制作verticaltext cellstyle?

景鸿晖
2023-03-14

最近,我遇到了一个问题:我需要用java导出一个excel(xlsx),它必须包含这种单元格样式:

我用这个垂直文本制作了一个excel文件,并导出为xml文件。然后我发现该样式有一个名为“VerticalText”的属性:

根据经验,我选择了ApachePOI。但是我找不到任何方法用POI生成单元格样式。我只能找到旋转法,不能满足要求。

所以我读了更多的POI代码,发现cell样式是从一些xsb文件构建的,这些文件也不包含垂直文本。

任何帮助非常感谢。

共有1个答案

於德馨
2023-03-14

图片中的XML是Excel 2003 SpreadsheetML。但是一个*。xlsx文件是包含Office Open XML文件的ZIP存档。在该ZIP文件中,保存样式。xml包含:

...
<cellXfs count="2">
 ...
 <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0">
  <alignment textRotation="255"/>
 </xf>
</cellXfs>
...

那里<代码>

这可以使用apache poi设置,如下所示:

import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


public class CreateXSSFVerticalText {

 public static void main(String[] args) throws Exception {
  Workbook workbook = new XSSFWorkbook();

  CellStyle cellStyle = workbook.createCellStyle();
  cellStyle.setRotation((short)255);

  Sheet sheet = workbook.createSheet();
  Row row = sheet.createRow(0);
  Cell cell = row.createCell(0);
  cell.setCellValue("test");
  cell.setCellStyle(cellStyle);


  FileOutputStream fileOut = new FileOutputStream("CreateXSSFVerticalText.xlsx");
  workbook.write(fileOut);
  fileOut.close();
  workbook.close();
 }
}

由于Office Open XML格式(如*.xlsx)是包含XML文件的ZIP存档,因此很容易确定必要的XML属性。只需创建一个简单的*。xlsx文件,使用ExcelGUI具有所需的格式。然后解压*。xlsx文件并查看xl/style。xml

 类似资料:
  • 我正在尝试用android显示PPT文件。我从ApachePOI开始,bcoz我还没有找到任何免费的开源jar。我从将ppt幻灯片转换为图像开始,参考此链接将PowerPoint幻灯片导出为java。awt。图表2D 这是Java语言。我找不到Dimension、BuffereImage和Graphics2D类。我已经导入了poi-scratchpad-3.8-20120326。jar在我的构建路

  • 现在我生成了一组幻灯片,当我以pps形式打开它时,它不会在幻灯片之间转换,除非我在微软的powerpoint编辑器中打开它(我可以在其中添加转换)并保存它。然后它可以正常转换。 我认为这与幻灯片母版有关:https://poi.apache.org/apidocs/org/apache/poi/xslf/usermodel/XSLFSlideMaster.html但我不确定它是如何使用的,因为它说

  • 我想使用@RunFor(Parameterized.class)和 实际的测试数据应由业务人员通过Excel创建。 是否有一种简单/通用的方法可以将Apache POI XSSFSheet获取到指定的字符串数组集合? 如果是:有人能提供一个例子吗? 我发现了这个问题:使用Apache POI在TestNG中进行Datadriven测试---但我希望是一种3线测试;-)

  • 我已经编写了用于编写xlsm(Excel2007)的java文件。 使用ApachePOI库,编写xlsx文件是成功的。编写xlsm文件是成功的。但我无法打开xlsm文件,因为打开xlsm文件时出错。 使用ApachePOI库编写xlsm文件可行吗? 如果可以编写xlsm,请提供如何使用ApachePOI库编写xlsm文件的指南。 谢谢

  • 用户可以将Excel文档保存为. xls或xml-table。结果是一个具有固定结构的xml-file,Excel可以用它纠正工作。 可以用java中的ApachePOI打开这种类型的excel文件吗? 事先谢谢你,安德烈。

  • 嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。

  • 问题内容: 我正在尝试使用Spring Boot创建一个小的REST。我很久以前从未使用过Spring,也没有使用过Java(Java 7)! 在过去的两年中,我只使用了Python和C#(但正如我所说,我已经使用过Java)。 因此,现在,我正在尝试使用异步方法制作REST,并检查了几个示例,但是,我仍然不太了解执行此操作的“正确方法”。 查看以下文档: http //carlmartensen

  • 问题内容: 我想制作一个ExpandableListView,它从服务器(JSON数组)的响应中为其组及其子级获取数据。这是我的json: “ alamat”和“ nama”将成为组,“ begdate”和“ enddate”将成为其子项。我从这里开始按照以下教程操作:http://en.wikicode.org/index.php/Custom_ExpandableListView,但是当我实现