首页 > 解决方案 > 将数据从 excel 移动到 access 时出错

问题描述

我正在尝试将数据从 excel 文件复制到访问文件,并且我正在执行一些查询,删除一个表然后创建它然后插入数据,知道我的表包含一些空格“列表 A”,查询显示一个在表名周围放置一些括号时出错。

public static Vector writetableA(String fileName) {
    Vector cellVectorHolder = new Vector();
    try {

        FileInputStream myInput = new FileInputStream(new File(fileName));
        // POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
        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();
            // Vector cellStoreVector=new Vector();
            List list = new ArrayList();
            while (cellIter.hasNext()) {
                XSSFCell myCell = (XSSFCell) cellIter.next();
                list.add(myCell);

            }
            Connection conn = DriverManager.getConnection(
                    "jdbc:ucanaccess://C:/Users/gfas1/Desktop/DHL Addendum_Oct 8 - final/Updated DHL.accdb");
            Statement stmt = conn.createStatement();
            stmt.executeQuery("DROP TABLE [list A]");
            stmt.executeQuery(
                    "CREATE TABLE [list A]  (ID VARCHAR(255),First VARCHAR(255),Name VARCHAR(255),Last Name VARCHAR(255),EmailAddress VARCHAR(255),Tuition Paid VARCHAR(255),Gender VARCHAR(255),Nation of  Birth VARCHAR(255),Nation of Ctizen VARCHAR(255),AGE VARCHAR(255),Level VARCHAR(255),Major VARCHAR(255),Concentration VARCHAR(255), Minor VARCHAR(255), Double Major/Dual Degree VARCHAR(255)   ,Class  VARCHAR(255),Admit Term VARCHAR(255),   Catalog term VARCHAR(255),   Advisor    Term VARCHAR(255),GPA   VARCHAR(255),Term Attempt Hrs VARCHAR(255), Term passed Hrs VARCHAR(255),   Term Earned Hrs VARCHAR(255),Overall GPA    VARCHAR(255),Overall Attemp Hrs VARCHAR(255),   Overall Earned Hrs  VARCHAR(255),Overall GPA Hours  VARCHAR(255),Repeated Overall VARCHAR(255), Repeated Term VARCHAR(255),     Withdrawn Overall VARCHAR(255), Withdrawn Term VARCHAR(255),    Acad VARCHAR(255), Standing VARCHAR(255),Full/Part  VARCHAR(255),SAT_Verbal VARCHAR(255),SAT_MATH VARCHAR(255)");
            stmt.executeQuery(
                    "INSERT INTO [list A] (ID,First,Name,Last Name,EmailAddress,Tuition Paid,Gender,Nation of  Birth,Nation of Ctizen,AGE,Level,Major,Concentration,    Minor,  "
                            + "Double Major/Dual Degree ,Class  ,Admit Term,    Catalog term,   "
                            + "Advisor  Term ,GPA   ,Term Attempt Hrs,  Term passed Hrs,    "
                            + "Term Earned Hrs  ,Overall GPA    ,Overall Attemp Hrs,    Overall "
                            + "Earned Hrs   ,Overall GPA Hours  ,Repeated Overall,  Repeated Term,"
                            + " Withdrawn Overall,  Withdrawn Term, Acad, Standing  ,Full/Part  ,SAT_Verbal,"
                            + " SAT_MATH) VALUES('" + list.get(0) + "','" + list.get(1) + "','" + list.get(2)
                            + "','" + list.get(3) + "','" + list.get(4) + "','" + list.get(5) + "','" + list.get(6)
                            + "','" + list.get(7) + "','" + list.get(8) + "','" + list.get(9) + "','" + list.get(10)
                            + "','" + list.get(11) + "','" + list.get(12) + "','" + list.get(13) + "','"
                            + list.get(14) + "','" + list.get(15) + "','" + list.get(16) + "','" + list.get(17)
                            + "','" + list.get(18) + "','" + list.get(19) + "','" + list.get(20) + "','"
                            + list.get(21) + "','" + list.get(22) + "','" + list.get(23) + "','" + list.get(24)
                            + "','" + list.get(25) + "','" + list.get(26) + "','" + list.get(27) + "','"
                            + list.get(28) + "','" + list.get(29) + "','" + list.get(31) + "','" + list.get(32)
                            + "','" + list.get(33) + "','" + list.get(34) + "'");
        }
    }

    catch (Exception e) {
        e.printStackTrace();
    }
    return cellVectorHolder;
}

收到错误:

net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::4.0.4 意外令牌:[在 net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:218) 在 main.writetableA(main.java:492) 在 main。 main(main.java:465) 原因:java.sql.SQLSyntaxErrorException:意外令牌:[ at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source) at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:216) ... 2 更多作者:org.hsqldb.HsqlException:意外令牌:[在 org.hsqldb.ParserBase.unexpectedToken(Unknown Source) 在 org.hsqldb.error.Error.parseError(Unknown Source) at org.hsqldb.ParserBase.checkIsIdentifier(Unknown Source) at org.hsqldb.ParserDDL.compileDrop(Unknown Source) at org.hsqldb.ParserCommand.compilePart(Unknown Source) at org.hsqldb.ParserCommand.compileStatements(Unknown Source) at org.hsqldb。 org.hsqldb.Session.execute(Unknown Source) 上的 Session.executeDirectStatement(Unknown Source) ... 还有 5 个

标签: javaexcelms-accessucanaccess

解决方案


推荐阅读