我试图修改一个excel文件,但由于某种原因,我不理解cell.SetCellValue方法在我的代码中不起作用。我实际上正在做的是:-我正在打开一个excel文件,并将感兴趣的内容保存在一个HashMap中。这样工作,我可以打印HashMap的内容。-然后,我试图用保存在HashMap中的数据修改另一个excel文件,但由于某种原因,这没有发生。
public File manipulateDocumentITM(File xlFile) {
// ADDING DATA FROM AN EXCEL FILE TO A HASHMAP
HashMap<Integer, ArrayList<Date>> hashMap = new HashMap<>();
try {
FileInputStream inFile = new FileInputStream(xlFile);
Workbook workbookInFile = new XSSFWorkbook(inFile);
Sheet sheetInFile = workbookInFile.getSheetAt(0);
Iterator<Row> rowIteratorInFile = sheetInFile.iterator();
int rowCountInFile = 5, key = 0, countEmpty = 0, rowCountModelFile = 10;
while (rowIteratorInFile.hasNext()) {
ArrayList<Date> arrayList = new ArrayList<>();
Row rowInFile = rowIteratorInFile.next();
if (rowInFile.getRowNum() == rowCountInFile) {
key++;
Iterator<Cell> cellIteratorInFile = rowInFile.cellIterator();
arrayList = new ArrayList<>();
while (cellIteratorInFile.hasNext()) {
Cell cell = cellIteratorInFile.next();
if ((cell.getCellType() == CellType.NUMERIC) && (cell.getColumnIndex() != 0)) {
Date data = cell.getDateCellValue();
arrayList.add(data);
}
}
hashMap.put(key, arrayList);
rowCountInFile = rowCountInFile + 4;
}
}
inFile.close();
// DATA SAVED IN HASHMAP ABOVE NEXT IM JUST PRINTING THE VALUES IN THE HASHMAP
for (Integer I : hashMap.keySet()) {
ArrayList<Date> replaceArray = hashMap.get(I);
System.out.println("***");
for (int i = 0; i < replaceArray.size(); i++) {
System.out.println(replaceArray.get(i).getHours());
}
}
// CODE THAT SUPPOSE TO MODIFY EXCEL FILE WITH THE DATA FROM THE HASHMAP
String modelPath = "/home/h1dr0/Documents/unimineral/Model foaie de prezenta (another copy).xlsx";
FileInputStream modelFile = new FileInputStream(modelPath);
Workbook workbookModel = new XSSFWorkbook(modelFile);
Sheet sheetModelFile = workbookModel.getSheetAt(0);
Iterator<Row> rowIteratorModelFile = sheetModelFile.iterator();
ArrayList<Date> replaceArray2 = new ArrayList<>();
Iterator it = hashMap.entrySet().iterator();
while (rowIteratorModelFile.hasNext()) {
Row rowModelFile = rowIteratorModelFile.next();
if (rowModelFile.getRowNum() == rowCountModelFile) {
Iterator<Cell> cellIteratorModelFile = rowModelFile.cellIterator();
Map.Entry pair = (Map.Entry)it.next();
replaceArray2 = (ArrayList<Date>) pair.getValue();
while (cellIteratorModelFile.hasNext()) {
Cell cell = cellIteratorModelFile.next();
if (replaceArray2.size() != 0) {
for (int i = 0; i < replaceArray2.size(); i++) {
if ((replaceArray2.get(i).getHours() != 0) && replaceArray2.get(i).toString() != "" && (cell.getColumnIndex() != 18)) {
// THIS DOES NOT WORK
cell.setCellValue(replaceArray2.get(i).getHours());
}
else {
cell.setCellValue(" ");
}
}
} else {
cell.setCellValue(" ");
}
}
rowCountModelFile = rowCountModelFile + 3;
}
}
modelFile.close();
//}
FileOutputStream outputStream = new FileOutputStream("/home/h1dr0/Documents/unimineral/generate.xlsx",false);
workbookModel.write(outputStream);
outputStream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return xlFile;
}
cell.setCellValue(8);
if(cell.getCellType() == CellType.NUMERIC) {
System.out.println("cell: " + cell.getNumericCellValue());
}
请帮忙,谢谢!
Excel设计用于处理巨大的表。只有使用过的才存储在内存或文档中。这意味着在填充单元格之前,必须首先创建单元格。
在您的代码中,我只看到您遍历了现有的单元格,但没有尝试创建它们。也许这就是问题所在?
我正在经历一个问题。 XML编码 Java编码 我希望当我单击editText时,当前文本必须是dissapperar。但是当我单击 单击事件工作正常,但光标不再位于编辑文本处。这意味着如果要输入一些新文本,那么即使光标不在编辑文本,如何输入新文本,如果我使用 然后单击事件不起作用。但可用于任何新编辑。问题是什么?我知道这是个愚蠢的错误,但我不知道在哪里。提前感谢大家。
问题内容: 我需要使用python编辑Excel工作簿。有没有这样做的方法,而无需阅读工作簿,编辑我想要的内容并将其写回?即有没有一种方法可以即时进行,因为我只需要在每张纸上编辑几个值? 我已经看过了,和,但他们似乎只支持(据我可以工作),阅读和写作不是编辑。我无法使用,因为我正在使用linux。 对库或特定的工作方式有何建议? 问题答案: xlutils有一个复制模块,可能会与您交错
vi 可以在命令行下编辑文件。 vi 要编辑的文件路径 练习:编辑文件 vi ninghao-project/README.md 这样会打开要编辑的文件,使用方向键可以移动光标。 编辑 想要编辑按一下小 i ,这样会进入到 vi 编辑器的编辑模式。这时你可以编辑文件里的内容,修改完成以后,按 esc 可以退出编辑模式。 搜索 搜索文件里的内容可以按 / ,然后输入要搜索的关键词,n 继续查找,
我正在尝试使用Apache POI编辑包含数据的excel文件。我编写了以下代码: 当我运行代码时,当我尝试打开Excel文件时,会出现以下错误:“我们发现‘file.xlsx’中的某些内容有问题。您希望我们尽可能多地恢复吗?如果您信任此工作簿的来源,请单击是。” 如果我单击是,Excel确实会使用我指定的值进行更新;但是,我不希望出现此错误。我如何解决这个问题?
我有问题,当我想在Laravel编辑我的个人资料。单击按钮update profile时出现以下错误: Symfony\Component\HttpKernel\Exception\MethodNotalLowedHttpException此路由不支持修补程序方法。支持的方法:GET、Head。http://127.0.0.1:8000/profile edit.blade.php web.php
我试图在我的测试自动化框架中实现一个数据驱动的方面。我已经创建了一个fe函数,它似乎工作正常,可以检索参数的列/行数,从特定单元格获取数据,更新特定单元格等等。 我现在正在用一个基本上有2列的脚本进行测试。第一列是用户名,第二列是密码。我可以遍历这些行,列没有问题。 我遇到了一个问题,如果有一个空白单元格,它会崩溃,但我通过一些错误处理解决了这个问题,如果有一个黑色单元格,它会返回字符串“空单元格