【问题标题】:Pushing excel cells into Teradata (or other database) format将 excel 单元格推入 Teradata(或其他数据库)格式
【发布时间】:2018-01-15 04:52:09
【问题描述】:

我很难想象一个执行此操作的好方法。正如您在下面的代码中所看到的,我正在遍历每一行并获取每个单元格的值。但是,当实际运行查询以将它们添加到表中时,如果一次可以输入一整行会更容易。尽管我不想为 excel 文档中的每一列创建单独的值,但有足够的列/可变性。有关如何更有效地运行它的任何想法?

for (int i=1; i<rowNum; i++) {
                    XSSFRow row = ws.getRow(i) ;
                        for (int j = 0; j<colNum; j++) {
                            XSSFCell cell = row.getCell(j) ;
                            String value = cell.getStringCellValue();
                            data[i][j] = value ;
                            System.out.println("the value is " + value);
                            stmt.executeUpdate("INSERT INTO databasetable VALUES(" + value + ")");
                        }
                }

【问题讨论】:

  • 没有真正遵循,因为代码为每个单元格(而不是每一行)插入了一条新记录。无论如何,teradata 可能会提供导入工具。需要java吗?
  • 我宁愿导出为 CSV 并快速加载它 - 非常简单,在 64k+ 表上需要几秒钟。只是一个想法。

标签: java database teradata


【解决方案1】:

您可以在工作表上生成迭代器以提高效率。

类似下面的东西

 public static Vector read(String fileName)    {
    Vector cellVectorHolder = new Vector();
    try{
        FileInputStream myInput = new FileInputStream(fileName);
        XSSFWorkbook myWorkBook = new XSSFWorkbook(myInput);
        XSSFSheet mySheet = myWorkBook.getSheetAt(0);
        Iterator rowIter = mySheet.rowIterator();
        while(rowIter.hasNext()){
            XSSFRow myRow = (XSSFRow) rowIter.next();
            Iterator cellIter = myRow.cellIterator();
            List list = new ArrayList();
            while(cellIter.hasNext()){
                XSSFCell myCell = (XSSFCell) cellIter.next();
                list.add(myCell);
            }
            cellVectorHolder.addElement(list);
        }
    }catch (Exception e){e.printStackTrace(); }
    return cellVectorHolder;
}

【讨论】:

  • 2017 年使用Vector 的有趣选择。
  • 其实我想跟他提一下迭代器...数据结构任你选择:)
【解决方案2】:

我最终使用了浓度,只是在 for 循环中的每个值之间插入了一个 , 。

【讨论】:

    猜你喜欢
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多