java - 在不打开excel文档的情况下用java打印整个Excel工作簿

标签 java excel apache-poi jexcelapi

如何打印 excel Workbook无需在后台打开,使用 Java ?

请注意,我需要打印所有的工作表,而不仅仅是 Activity 的工作表。

我尝试过 Desktop.print(FileName); 之类的东西但这似乎不适用于所有床单。

我正在使用 Apache POI API创建Excel文件通过 Java .

非常感谢!

更新

为了进一步解释我的问题,我使用 Apace POI打印 Excel文件为 -

HSSFSheet sheet = workbook.getSheet("Sheet5"); 
HSSFRow row21 = sheet.getRow((short)5);
        row21.getCell((short)2).setCellValue(notcorrect);
        desktop.print(new File(filename));

        HSSFSheet sheet7 = workbook.getSheet("Sheet7");

        HSSFRow row20 = sheet7.getRow((short)3);
        row20.getCell((short)2).setCellValue(logreference);
        row20.getCell((short)4).setCellValue(ISSUENUMBER);
        desktop.print(new File(filename));

        HSSFSheet sheet8 = workbook.getSheet("Sheet8");
        HSSFRow row22 = sheet8.getRow((short)3);
        row22.getCell((short)2).setCellValue(logreference);
        row22.getCell((short)4).setCellValue(ISSUENUMBER);
desktop.print(new File(filename));

但这似乎只适用于 active workbook .如果我有 workbook在我的Excel file如下 -

enter image description here

上面的代码只会打印 active sheetsheet # 5 .如何使用 Jexcel打印 Sheet 5, 6 7 ?

非常感谢!

最佳答案

在编写代码之前,我们必须下载 apache-poi jars
https://poi.apache.org/download.html
下载 - poi-bin-5.0.0-20210120.tar.gz(当前版本)

package test1;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class P1 {

    public static void main(String[] args) throws IOException {
        
        //Path to excel from system = /Users/user/Downloads/test1.xlsx"
        File f = new File("/Users/user/Downloads/test1.xlsx");
        FileInputStream fis = new FileInputStream(f);
        XSSFWorkbook wb = new XSSFWorkbook(fis);

        //June2021 is my sheet name of excel
        XSSFSheet sheet = wb.getSheet("June2021");
        
        int RowCount = sheet.getLastRowNum() - sheet.getFirstRowNum();
        for(int i=0; i<= RowCount; i++) {
            System.out.print("Row "+ i + " data is : ");
            int cellCount = sheet.getRow(i).getLastCellNum();
            
            for(int j=0; j<cellCount; j++) {
                XSSFCell c1 = sheet.getRow(i).getCell(j);
                System.out.print(c1 + " ");
            }
            System.out.println();
        }
    }
}

关于java - 在不打开excel文档的情况下用java打印整个Excel工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34355619/

相关文章:

java - 如何将 Jython 文件导入 Groovy?

java - 更改 "bootJar"目标目录

java - 我的 Java 记录器(比如 logback)如何找到我的代码的行号?

vba - 用户窗体中命名范围 (Excel) 的变量给我一个错误

java - 环境配置管理?

excel - Excel 中包含三个字段的饼图

Java 8 和文件处理 30 MB excel

java - Apache POI jar 没有 hwpf 包

Java 和 Excel : value being read wrong

java - Apache POI 公式单元格复制非常慢