代码之家  ›  专栏  ›  技术社区  ›  Gaurav Thantry

如何使Java程序接受命令行中给出的Excel文件?

  •  0
  • Gaurav Thantry  · 技术社区  · 6 年前

    我想让我的程序接受命令行中给出的文件名,当我把它作为一个可执行的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;
        }
    2 回复  |  直到 6 年前
        1
  •  3
  •   Roushan    6 年前

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

    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]);
    }
    
        2
  •  1
  •   Vipin Pandey    6 年前