mak*_*ier 1 java excel apache-poi
我正在使用 apache poi 4.0.0 版,并且我正在尝试制作多组列,如下图所示:我不知道是否可以使用 poi。
我XSSFSHeet.groupColumn()在循环中尝试了方法。
int indexColumnMonth = INDEX_START_RESULTS;
for(int i =0; i< meses.size(); i++) {
int columnFim = indexColumnMonth + (turmas.size());
planilha.groupColumn(indexColumnMonth, columnFim);
indexColumnMonth = columnFim +1;
}
Run Code Online (Sandbox Code Playgroud)
但这样做的结果是一张只有一组列的工作表,这些列可以获取所有列。我已经检查过职位生成是否正确,但我不正确。
有没有办法用POI做到这一点?
[咆哮开始,模式:讽刺] 通常它缺乏对Excel工作原理的理解。许多程序员似乎认为他们可以在Excel不知道的情况下编程功能Excel。他们可能会想:“Excel我为什么要为此烦恼?我是程序员,不是上班族。” 但是对于编程Excel功能Excel,首先必须了解。没有办法。[/咆哮结束]
如果您正在打开的Excel在您的图片显示文件Excel的GUI,做第一个点击-上面J,然后是J该组的一部分?不它不是。它是第二组的一部分吗?不,也不是。那是因为如果单组列之间必须至少有一列,如果它们出现在您的图片中。
因此,如您的图片所示,您已将E:I,K:O和Q:U.
来源:
代码:
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
class ExcelGroupColumns {
public static void main(String[] args) throws Exception{
FileInputStream in = new FileInputStream("Test.xlsx");
Workbook workbook = WorkbookFactory.create(in);
Sheet sheet = workbook.getSheetAt(0);
int firstColumn = 4;
int countGroupedColumns = 5;
int countGroups = 3;
for (int i = 0; i < countGroups; i++) {
sheet.groupColumn(firstColumn, firstColumn + countGroupedColumns - 1);
firstColumn += countGroupedColumns + 1;
}
FileOutputStream out = new FileOutputStream("Test_1.xlsx");
workbook.write(out);
out.close();
workbook.close();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
| 归档时间: |
|
| 查看次数: |
2750 次 |
| 最近记录: |