- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是我的代码。我首先在 init 方法中创建 header 。然后在pushData 中我填充行。问题是,一旦我在 init 方法中写入并刷新,我的 Excel 工作表中就没有其他内容了。
我要写入 Excel 的行可能会很大。使用flush的思想并不是定期释放内存。
请告诉我我在这里犯了什么错误。我如何实现我的意图?l
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExportTranscriptDetailsToExcel implements IExportToFormat {
private static final ILogger logger = ILabsPlatform.getLogger(ExportTranscriptDetailsToExcel.class.getName());
OutputStream outputStream;
List<String> labels;
WritableWorkbook workbook;
WritableSheet sheet0;
public ExportTranscriptDetailsToExcel() {
this.outputStream = null;
workbook = null;
sheet0 = null;
}
@Override
public void init(String sheetName, List<String> labels, OutputStream outputStream) throws IOException,
RowsExceededException, WriteException {
this.outputStream = outputStream;
this.labels = labels;
WorkbookSettings workbookSettings = new WorkbookSettings();
workbookSettings.setEncoding("Cp1252");
workbook = Workbook.createWorkbook(outputStream, workbookSettings);
sheet0 = workbook.createSheet(sheetName, 0);
for (int i = 0; i < labels.size(); ++i) {
Label label = new Label(i, 0, labels.get(i));
sheet0.addCell(label);
}
workbook.write();
outputStream.flush();
}
@Override
public void pushDataRows(Object listOfResultRow) {
if ((listOfResultRow == null)) {
return;
}
String fieldName = null;
String fieldValue = null;
@SuppressWarnings("unchecked")
ArrayList<Map<String, Object>> interactionMap = (ArrayList<Map<String, Object>>) listOfResultRow;
try {
int i = 1;// the data rows starts from row1
for (Map<String, Object> element : interactionMap) {
for (int j = 0; j < labels.size(); j++) {
fieldName = labels.get(j);
Object ob = element.get(fieldName);
if (ob != null) {
fieldValue = ob.toString();
}
if (fieldValue == null) {
fieldValue = "-";
}
System.out.println("***********************fieldName:" + fieldName);
System.out.println("***********************fieldValue:" + fieldValue);
Label label1 = new Label(j, i, fieldValue);
fieldValue = null;
sheet0.addCell(label1);
}
i++;
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
try {
workbook.write();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
outputStream.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void done() {
try {
workbook.close();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最佳答案
按照建议here
为了解决内存问题,您可以在写入时通知 jxl 使用临时文件。这将在执行期间将数据写入临时文件,而不是将其存储在内存中。
您需要调整您的 WorkbookSettings:
workbookSettings.setUseTemporaryFileDuringWrite(true);
workbookSettings.setTemporaryFileDuringWriteDirectory(new File("your_temporary_directory"));
将上面的 your_temporary_directory 替换为您喜欢的临时目录
另请注意,此功能在 jxl 版本 >= 2.6.9 中可用
关于java - 如何使用 jxl 定期刷新 excel 中的行,同时最后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180666/
我的域模型 package sample class Person { String lastName String firstName Date dateOfBirth int numberOfCh
我正在尝试从我的 .csv 文件中获取单元格数据,但出现错误:jxl.read.biff.BiffException: 无法识别 OLE 流 我不知道怎么解决,请给我一些解决方案此代码适用于 jxl
当我使用 jxl 编写 Excel 文件并使用您自己的单元格格式时,我收到此警告:已格式化单元格的最大数量已过期。使用默认格式”。我有大约 350 个单元格需要格式化,这对我来说似乎相对较少。我做错了
如何使用 jxl api 自动调整单元格中的内容? 最佳答案 该方法是不言自明的并评论: private void sheetAutoFitColumns(WritableSheet sheet) {
我的 excel 中有多行,除了第一行外内容都很小。只是为了在顶行插入一个大标题,我不希望后续行的宽度受到影响。有没有一种方法可以将顶行中的内容跨越多列而不影响后续行的宽度。 最佳答案 是的,通过使用
我的 excel 中有多行,除了第一行外内容都很小。只是为了在顶行插入一个大标题,我不希望后续行的宽度受到影响。有没有一种方法可以将顶行中的内容跨越多列而不影响后续行的宽度。 最佳答案 是的,通过使用
优点: Jxl对中文支持非常好,操作简单,方法看名知意。 Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写 支持Excel 95-
本文整理了Java中jxl.write.WriteException类的一些代码示例,展示了WriteException类的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
本文整理了Java中jxl.write.WritableCell类的一些代码示例,展示了WritableCell类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven
我正在使用 JXL 编写 Excel 报告。我需要为报告使用命名区域,并具有基于它们的公式。但是,加载 Excel 文件时,显示的值不正确。如果我单击单元格并按 Enter 键,则值会发生变化并且是正
JXL 隐藏工作表 我的需求是这样的 我需要创建一个工作表并将其隐藏(使用 JXL API)。 稍后,在程序中,我会将值填充到隐藏工作表中,该工作表是另一个工作表的引用。 有人可以告诉我如何使用 JX
我正在使用jxl将一个小jtable导出到excel,并且我选择JXL API来实现我的目标,一切都很顺利。但我仍然有一个关于数字格式的小问题: 如何添加小数点分隔符,如下例所示: ---------
我正在使用 jxl 创建 Excel 文件。我需要为日期类型单元格设置特定字体。当我编写文本单元格时,很容易做到: WritableFont arial10pt = new WritableFont(
有没有办法使用 JXL 为一系列单元格添加边框?一次为一个单元格设置边框非常繁琐。选择一系列单元格并合并它们可行,但不确定如何一次为一堆单元格设置边框。 最佳答案 有一种方法,先合并单元格,然后给一个
我使用 jxl 将用户输入的数据存储到 Excel 电子表格中。我希望能够在程序运行时关闭程序并打开 Excel 电子表格并查看数据。每当我这样做时,我都会收到一条消息,指出它的格式与文件扩展名中指定
SheetSettings settings = billSheet.getSettings(); settings.setHorizontalFreeze(1); settings.setVerti
我正在使用 JXL 编写 Excel 文件。客户希望某列显示一位小数。他们还希望单元格类型为“数字”。当我使用以下(测试)代码时,数字显示正确,但单元格类型为“自定义”。 File excelFile
您好,我有一个我加载的 excel 模板,我想更改其中的工作表名称。 WritableWorkbook workbook = jxl.Workbook.createWorkbook(file1,tem
在尝试执行以下代码时: Colour selectedColour = Colour.WHITE; myWritableCellFormat.setBackground(selectedColour)
本文整理了Java中jxl.biff.formula.Yylex类的一些代码示例,展示了Yylex类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一
我是一名优秀的程序员,十分优秀!