导入EXCEL表格数据

看了一天,感觉自己有点笨。。。

public class Test {
    public static void main(String args[]) {
        Test test = new Test();
        test.extract();
    }


    public static void extract() {
        try {

            InputStream is = null;
            Workbook workbook = getWorkbook(new File("D:\\1.xlsx"));
            Sheet sheet = workbook.getSheetAt(0);
               for(int i=0;i<sheet.getPhysicalNumberOfRows();i++){
                   Row row= sheet.getRow(i);
                   for(int j=0;j<row.getPhysicalNumberOfCells();j++){
                       System.out.println(row.getCell(j));
                   }
           }
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

    public static Workbook getWorkbook(File file) throws IOException {

        Workbook wb = null;
        FileInputStream in = new FileInputStream(file);
        if (file.getName().endsWith("xls")) {     //Excel&nbsp;2003
            wb = new HSSFWorkbook(in);
        } else if (file.getName().endsWith("xlsx")) {    // Excel 2007/2010
            wb = new XSSFWorkbook(in);
        }
        return wb;
    }

}

就这个写了一天。。。

最重要的是编程的思想!整天看是没用的,还是要自己想然后动手写代码!

### 通过 PL/SQL 导入 Excel 数据 在实际工作中,常常需要将 Excel 数据导入到 Oracle 数据库中。PL/SQL 提供了便捷的工具来完成这一任务。首先,打开 PL/SQL 工具,点击 `Tool` -> `ODBC Importer`,然后选择需要导入Excel 文件。此方法可以直接读取 Excel 文件中的数据,并将其导入到 Oracle 表中 [^1]。 ### 使用 CSV 文件进行数据导入 另一种常见的做法是将 Excel 文件导出为 CSV 格式,然后再进行导入。在导出 CSV 文件后,可以使用 PL/SQL 的文本导入器功能,打开 CSV 文件并设置所有者、导入的表等信息。需要注意的是,日期格式、数值类型字段的格式需要特别注意,为了避免错误,可以直接选择文本类型进行导入 [^3]。 ### 使用 SQL*Loader 导入数据 对于大型 Excel 文件,可以考虑使用 Oracle 自带的 SQL*Loader 工具进行数据导入。首先,将 Excel 文件导出为 CSV 格式。接着,创建控制文件(.ctl),定义数据文件的格式、目标表的结构以及数据加载方式。最后,在命令行中运行 SQL*Loader 命令进行数据导入 [^5]。 ```bash sqlldr admin/password@DATABASE control=ctl/TEST.ctl log=out/TEST.log data=data/TEST.csv bad=out/TEST.bad skip=1 ``` ### 创建对应字段的数据表 在导入数据之前,需要确保目标表已经存在。可以通过 `CREATE TABLE` 语句创建一个结构与 Excel 文件匹配的空表。例如: ```sql CREATE TABLE HVP ( age number(5), numberOfSexualPartners VARCHAR2(6), firstSexualIntercourse VARCHAR2(6), numOfpregnancies VARCHAR2(6) ); ``` ### 使用 Python 脚本自动化导入 Python 提供了 `pandas` 和 `cx_Oracle` 库,可以实现从 Excel 文件读取数据并写入 Oracle 数据库的功能。 ```python import pandas as pd import cx_Oracle # 读取 Excel 文件 df = pd.read_excel('sales_data.xlsx') # 连接到 Oracle 数据库 connection = cx_Oracle.connect('username/password@orcl') cursor = connection.cursor() # 插入数据 for index, row in df.iterrows(): cursor.execute( "INSERT INTO sales_data (sale_id, product_name, quantity, sale_date) VALUES (:1, :2, :3, :4)", (row['sale_id'], row['product_name'], row['quantity'], row['sale_date']) ) # 提交事务并关闭连接 connection.commit() cursor.close() connection.close() ``` 该脚本使用 `pandas` 读取 Excel 文件,并使用 `cx_Oracle` 将数据逐行插入到 Oracle 表中。对于大型文件,建议使用批量插入方式提高性能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值