if(first.isPresent()){ rowList.add(first.get()); }else{ rowList.add(StringUtils.EMPTY); } 代码优化
时间: 2023-12-12 08:02:24 浏览: 65
可以使用 Java 8 的 Optional 类的 orElse 方法来优化这段代码,如下所示:
```
rowList.add(first.orElse(StringUtils.EMPTY));
```
如果 `first` 存在值,则将其加入 `rowList` 中,否则添加空字符串。使用 `orElse` 方法可以避免显式地使用条件语句。
相关问题
if(i<3){ rowList.add(0); }else { rowList.add(StringUtils.EMPTY); } 代码优化
可以使用 Java 8 中的 `IntStream` 和 `Stream` 来进行代码优化,如下所示:
```
rowList.addAll(IntStream.range(0, i < 3 ? 3 : i + 1)
.mapToObj(j -> j < 3 ? 0 : StringUtils.EMPTY)
.collect(Collectors.toList()));
```
这里使用了 `IntStream.range()` 方法生成一个整数流,范围是 0 到 i+1,然后使用 `mapToObj()` 方法将整数转换为相应的值,并最终使用 `collect()` 方法将结果收集到列表中。这种方式可以避免重复的 `if-else` 语句,使代码更加简洁。
def read_excel(): xlsx = openpyxl.load_workbook("../excel.xlsx") sheet1 = xlsx['Sheet1'] print(sheet1.max_row) # 行 print(sheet1.max_column) # 列 print('=======================================================') allList = [] for row in range(2, sheet1.max_row + 1): rowlist = [] for column in range(1, sheet1.max_column + 1): rowlist.append(sheet1.cell(row, column).value) allList.append(rowlist) return allList
这段代码实现了读取 Excel 文件中的数据并将其转换为二维列表的功能。
首先,我们使用 `openpyxl` 模块的 `load_workbook()` 方法加载 Excel 文件,并指定要读取的工作表名称为 `Sheet1`。
然后,我们使用 `max_row` 和 `max_column` 属性获取工作表的行数和列数,并打印出来。
接着,我们使用两个循环遍历工作表中的所有单元格,将每一行的数据存储到一个列表中,再将所有行的列表存储到一个二维列表中,最后返回这个二维列表。
在这个例子中,我们假设 Excel 文件的第一行为表头,因此从第二行开始读取数据。如果需要读取其他工作表或其他行列的数据,可以根据具体情况进行修改。
注意,在使用这段代码之前,需要先安装 openpyxl 模块。可以使用以下命令进行安装:
```
pip install openpyxl
```
阅读全文