- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Apache POI 3.12:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.12</version>
</dependency>
如何更改数据透视表中的字体?将一个单元格 (I7) 的字体更改为 8pt 后检查生成的 .xlsx,显示以下更改:
styles.xml,在标签内作为第二个条目:
<font>
<sz val="8"/>
<color indexed="8"/>
<name val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</font>
within the <cellXfs> tag as the 5th entry:
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyNumberFormat="1" applyFont="1"/>
New tag: dxfs:
<dxfs count="1">
<dxf>
<font>
<sz val="8"/>
</font>
</dxf>
</dxfs>
数据透视表.xml
<formats count="1">
<format dxfId="0">
<pivotArea collapsedLevelsAreSubtotals="1" fieldPosition="0">
<references count="2">
<reference field="4294967294" count="1" selected="0">
<x v="0"/>
</reference>
<reference field="0" count="1">
<x v="0"/>
</reference>
</references>
</pivotArea>
</format>
</formats>
sheet1.xml
<c r="I7" s="4">
注意:我可能会将此作为 self 回答关闭,因为我仍在尝试自己解决它。然而,我已经这样做了将近一周了。 POI Pivot table sample
最佳答案
这是一个部分答案,因为它需要使用 excel 来设置而不是纯 poi。
一般步骤:
进入代码:
private static CTFormats getFormats(XSSFPivotTable pivotTable) {
CTFormats formats = pivotTable.getCTPivotTableDefinition().getFormats();
if(formats==null)
formats=pivotTable.getCTPivotTableDefinition().addNewFormats();
return formats;
}
private static int createDXFs(XSSFWorkbook wb,int font) {
CTDxfs dxfs=wb.getStylesSource().getCTStylesheet().getDxfs();
if(dxfs==null)
dxfs=wb.getStylesSource().getCTStylesheet().addNewDxfs();
dxfs.setCount(dxfs.getCount()+1);
CTDxf dxf=dxfs.addNewDxf();
CTFontSize fontSize=dxf.addNewFont().addNewSz();
fontSize.setVal(font);
return (int) dxfs.getCount()-1;
}
public static void setAxisFont(CTFormats pivotTableFormats,int dxfId) {
CTFormat format=pivotTableFormats.addNewFormat();
format.setDxfId(dxfId);
CTPivotArea pivotArea = format.addNewPivotArea();
pivotArea.setDataOnly(false);
pivotArea.setLabelOnly(true);
pivotArea.setOutline(false);
pivotArea.setFieldPosition(0L);
pivotArea.setAxis(STAxis.AXIS_ROW);
pivotArea.setType(STPivotAreaType.BUTTON);
}
public static void setColHeaderFont(CTFormats pivotTableFormats,int dxfId,int colInd) {
CTFormat format=pivotTableFormats.addNewFormat();
format.setDxfId(dxfId);
CTPivotArea pivotArea = format.addNewPivotArea();
pivotArea.setDataOnly(false);
pivotArea.setLabelOnly(true);
pivotArea.setOutline(false);
CTPivotAreaReferences references = pivotArea.addNewReferences();
CTPivotAreaReference reference = references.addNewReference();
reference.setField(new Long(Integer.MAX_VALUE)*2);
CTIndex x = reference.addNewX();
x.setV(colInd); //Column
}
public static void setLabelFont(CTFormats pivotTableFormats,int dxfId, int rowInd) {
CTFormat format=pivotTableFormats.addNewFormat();
format.setDxfId(dxfId);
CTPivotArea pivotArea = format.addNewPivotArea();
pivotArea.setDataOnly(false);
pivotArea.setLabelOnly(true);
pivotArea.setFieldPosition(0L);
CTPivotAreaReferences references = pivotArea.addNewReferences();
CTPivotAreaReference reference = references.addNewReference();
reference.setField(0L);
CTIndex x = reference.addNewX();
x.setV(rowInd); //Row
}
public static void setDataElementFont(CTFormats pivotTableFormats,int dxfId,int col,int row) {
CTFormat format=pivotTableFormats.addNewFormat();
format.setDxfId(dxfId);
CTPivotArea pivotArea = format.addNewPivotArea();
//Default values, don't need to explicitly define.
//pivotArea.setDataOnly(true);
//pivotArea.setLabelOnly(false);
CTPivotAreaReferences references = pivotArea.addNewReferences();
CTPivotAreaReference reference = references.addNewReference();
reference.setField(new Long(Integer.MAX_VALUE)*2);
CTIndex x = reference.addNewX();
x.setV(col); //Column
reference = references.addNewReference();
reference.setField(0L);
x = reference.addNewX();
x.setV(row); //Row
}
注释:
警告 poi 3.12 的 maven 使用的 poi-ooxml-schemas 不包括 CTFormat。这可以通过排除它并包含 1.1 版本来覆盖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.1</version>
</dependency>
关于java - XSSF (POI) - 更改数据透视表上的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32828574/
private void cleaner(Integer columnsCount, Integer rowsCount, Object object){ int firstColumn=0;
我收到以下代码的NullPointerException。有人可以帮忙解决这个问题吗?我正在尝试将数据库值获取到现有的 Excel 工作表。 Statement statement = connect
我正在尝试编写一个函数,该函数读取 Excel 模板并开始在某个行索引处写入。但是,我发现编号会跳过模板中的空白行。有没有办法在迭代期间计算空白行? 我试图找到相当于 missing cell pol
我尝试使用 apache poi xssf 将 excel 文件解析为 XML。现在有了一个单元格,但不知道里面有什么,我只想从中获取一个字符串。但是当我使用 cell.getStringCellVa
我正在尝试读取由网络应用程序生成的 Excel 文件。但我无法访问任何列或行,因为 XSSF 工具一直告诉我没有工作表。单个工作表称为“MySheet”,但当我按名称搜索它时,得到 -1。当我搜索工作
这是我到目前为止的代码,它从查询中获取数据,然后将其导出到 Excel 文档中: oArray = CreateObject("java", "java.util.Arrays"); wor
我现在已经尝试从 XSSFSheet 中删除图像太久了。我找不到关于此的任何信息,但我认为这是可能的.. 有什么方法可以从我的 XSSFSheet 中删除图像吗?甚至官方(?)apache poi 网
我在保存新的 Excel 文件时遇到问题。我希望它在保存时公式会自行计算,但目前它只是在 excel 文件中返回一个字符串。公式是正确的。我不知道如何让 FormulaEvaluator 工作。 这里
我有一个 HSSF 工作簿,其中包含我的自定义颜色,但现在我需要使用 XSSF 来创建 xslx 文件。 我已经相应地改变了一切,但唯一让我难过的是如何在这样的事情中使用定制的 XSSFColor :
我想为使用 poi 3.14 创建的 xlsx 文件添加密码保护。文档声称,这是可能的: http://poi.apache.org/encryption.html 使用我这样尝试的示例: p
我正在使用 Apache POI 3.12: org.apache.poi poi 3.12 org.apache.poi poi-ooxml 3
我目前正在使用 Apache POI 库在 Java 中生成 excel 文件。 这就是我想知道的:在 Excel 中,可以创建新的单元格样式并将其添加到工作簿中。这些样式是可重复使用的,并且可以从样
几年前,我遇到了使用 jXLS 和 POI XSSF 创建大型 excel 文件的问题。如果我没记错的话,我认为 XSSF 会在磁盘上创建类似 1GB+ 的临时文件来创建 10mb 的 excel 文
有没有办法确定单元格是否为日期?我知道 style.get DataFormatString() 但这对我没有帮助,因为我无法确定格式是否适用于日期。 最佳答案 如果您使用的是 XSSF 用户模型,那
我使用下面的代码在 XSSF 工作表中设置默认列样式?但这不起作用任何人都可以建议错误修复。 format = workbook.createDataFormat(); style = workboo
如何将现有列数据和格式复制到 Apache POI 中的下一列并将下一列向右移动。 我试过了。假设我的代码是这样的...... XSSFCell oldCell = worksheet.getRow(
无法将“STYLE”从 .xlsx 文件复制到另一个文件。 这是我正在使用的代码。 public static void copyCell(XSSFCell oldCell, XSSFCell ne
单元格 A1 具有 公式“=A2”并被格式化为显示 1 个小数点 单元格 A2 具有 值 4.23 单元格 A1 显示 4.2(格式化显示值) 单元格 A2 显示 4.23(格式化显示值) 我的 XS
有没有办法不读取整个 Excel 文档行,我正在读取文档中定义的单元格,但是,它拉入了整个工作表的列??? 我正在将 Excel 文档转换为 CSV 文档。我得到了这个结果。 Aircraft ID
我已经使用 XLS,但今天我正在尝试新的 - xlsx。对于 XLS,我只需要一个库,而 XLSX(四个库)则相反。我还得到整个包错误。为什么会发生这种情况? 主要: public class
我是一名优秀的程序员,十分优秀!