gpt4 book ai didi

java - 如何使用 Java 8 访问 Excel 作为数据库

转载 作者:行者123 更新时间:2023-12-02 11:40:49 24 4
gpt4 key购买 nike

我使用的是 Java 8。

当我尝试通过 jdbc-odbc 访问 Excel 数据(基本上这是我的测试数据)时,我收到“java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver”

而且我还尝试以非 DSN 方式访问数据。

上网查了一下,发现Oracle已经不再支持jdbc-odbc了。

那么使用 Java 访问 Excel 数据的最简单方法是什么?

Connection con=null;
Statement stmt=null;
ResultSet rs=null;
String query = "select TestScript from [TS 360 Scripts$]";

try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
con = DriverManager.getConnection("jdbc:odbc:;Driver={Microsoft Excel Driver(*.xlsx)};DBQ=D://TS 360 Script with Count.xlsx");


stmt=con.createStatement();
rs=stmt.executeQuery(query);
while(rs.next())
{
System.out.println(rs.getString("TestScript"));
}

con.close();
rs.close();
stmt.close();
}
catch(Exception e)
{
e.printStackTrace();
}

最佳答案

不要将 Excel 文件作为数据库访问。而是使用这样的 jar 作为 Microsoft 文档的 Apache POI

下载链接:Apache POI For MS Docs- Jar

使用此 API 的示例:

注意:在运行之前,您必须将 apache poi jar 添加到构建路径

package com.dd.selenium;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.firefox.FirefoxDriver;


public class PerformDDTest {

private static HSSFWorkbook xlWBook;

private static HSSFSheet xlSheet;

private static HSSFRow xlRow;

private static HSSFCell xlCell;

private static String filePath = "/home/dinesh/";

private static String fileName = "test.xls";

private static String url = "http://store.demoqa.com/";

private static String result = "Pass";


public static void main(String[] args) throws InterruptedException {

try {
FileInputStream xlFile =
new FileInputStream(filePath+fileName);

//Access the required test data sheet

xlWBook = new HSSFWorkbook(xlFile);

xlSheet = xlWBook.getSheet("Sheet1");

xlRow = xlSheet.getRow(1);

String username = xlRow.getCell(1).getStringCellValue();
String password = xlRow.getCell(2).getStringCellValue();

FirefoxDriver driver = new FirefoxDriver();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.manage().window().maximize();


driver.get(url);

driver.findElement(By.xpath(".//*[@id='account']/a")).click();

driver.findElement(By.id("log")).sendKeys(username);
driver.findElement(By.id("pwd")).sendKeys(password);

driver.findElement(By.id("login")).click();



driver.findElement(By.xpath(".//*[@id='account_logout']/a")).click();

Thread.sleep(5000);

driver.quit();

setResultCell();


FileOutputStream fout = new FileOutputStream(filePath+fileName);

xlWBook.write(fout);

fout.flush();
fout.close();



} catch (IOException e) {
// TODO Auto-generated catch block
result = "Failed";
setResultCell();
e.printStackTrace();
}



}


private static void setResultCell() {
xlCell = xlRow.getCell(3, xlRow.RETURN_BLANK_AS_NULL);

if(xlCell == null ){
xlCell = xlRow.createCell(3);
xlCell.setCellValue(result);
}else{
xlCell.setCellValue(result);
}
}

}

关于java - 如何使用 Java 8 访问 Excel 作为数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com