【发布时间】:2018-01-26 16:47:35
【问题描述】:
我需要将数据写入现有模板并在其中存储格式,但样式(字体、颜色、边框)消失了。 我做了什么? 加载表格并在其中获取表格:
Workbook xlsxWorkbook = WorkbookFactory.create(new File(filename));
xlsxWorkbook.getSheet(sheetname);
修改如下:
while (condition) {
Row dataRow = xlsxSheet.getRow(rowIndex);
if (dataRow == null) {
dataRow = xlsxSheet.createRow(rowIndex);
}
rowIndex++;
int colIndex = 0;
for (String colName : colNames) {
Cell tmp = dataRow.getCell(colIndex);
if (tmp == null)
tmp = dataRow.createCell(colIndex);
tmp.setCellValue(value);
colIndex++;
}
}
写回文件:
write(params.getProperty("xlsx-filename"), xlsxSheet.getWorkbook());
我对此了解多少? 早些时候我使用相同的没有空检查,在这种情况下所有样式都消失了。 现在,如果单元格和行不为空(不在 java 代码中重新创建),格式保存,但它们预初始化的情况非常不同。有时数据会初始化它,有时不会,有时会预先初始化具有特定样式的单元格。
附言对不起我的英语
【问题讨论】:
-
rowIndex的值是多少。该代码在哪里定义?您想添加行现有工作表或更改行吗? -
行索引只是行迭代器,之前定义了一行“int rowIndex = 0;”。我想在清晰的模板上写数据
-
想在清晰的模板上写入数据,还想修改?那么风格在哪里?抱歉,我很困惑,根据您发布的代码,您想达到什么目的?
-
模板仅包含样式(ex 全部为黄色),模板仅用于将在结果样式数据中的样式
-
如果单元格样式是使用
Excel设置的,那么这可以是一个现有单元格的样式,也可以是该行中所有单元格的行样式,或者该列中所有单元格的列样式。在stackoverflow.com/questions/42081288/… 中,我提供了一种方法来获取工作表中单元格的首选样式。这将获取给定单元格的当前样式或行样式或列样式。
标签: java excel apache-poi