java - 如何让我的java程序接受命令行中给出的excel文件?

标签 java

当我将其作为可执行 jar 文件运行时,我想让我的程序接受命令行中给出的文件名。在下面的代码中,我将文件名硬编码为report.xlsx。例如,我希望它使用命令 java -jar Vnp.java fileName.xlsx

接受文件

  public ArrayList < String > getReports() throws IOException {
        ArrayList < String > reports = new ArrayList < String > ();
        FileInputStream fis = new FileInputStream(new File("reports.xlsx"));
        workbook = new XSSFWorkbook(fis);
        sheet = workbook.getSheet("sheet1");
        int rowCount = sheet.getFirstRowNum() + sheet.getLastRowNum() + 1;
        reportCount = rowCount;
        int colCount = sheet.getRow(0).getLastCellNum();
        if (colCount > 1) {
            System.out.println("The number of columns are more than 1. Please input only one column with the report keys");
        } else if (colCount == 1) {
            System.out.println("Number of reports given: " + rowCount);
            for (int rNum = 1; rNum <= rowCount; rNum++) {

                for (int cNum = 0; cNum < colCount; cNum++) {

                    reports.add(getCellData("sheet1", cNum, rNum));
                }
            }
        }
        return reports;
    }

最佳答案

只需将字符串参数添加到文件名的方法

public ArrayList < String > getReports(String filename) throws IOException {
     ArrayList < String > reports = new ArrayList < String > ();
        FileInputStream fis = new FileInputStream(new File(filename));
     ...........
}

如果从 main 调用,则传递第一个索引:

public static void main(String a[]){
  if(a.length == 0)//check if command line args passed
   System.exit(0);//if not then exit
  ArrayList<String> list = obj.getReports(a[0]);
}

关于java - 如何让我的java程序接受命令行中给出的excel文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50873447/

相关文章:

javascript - 将 jsp 数组变量传递给外部 javascript

c# - C# 中 Java 的等效 Main 方法是什么

Java Azure 函数未在本地执行

java - Activity 和 View 的 findViewById 的父类(super class)型

java - Hibernate类设计,持久化List和HashMap

java - 并发请求的 repo 类线程安全吗? - Spring Boot

有 N 个叶子的 Java 树?

java - 区分 SQL 字符串和注释

java - 限制 jtextfield 不接受空格作为第一个字符

java - 在Java中的单个服务器-多个客户端中,消息不会从服务器发送到客户端