- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 jxl 将数据从 Excel 工作表导入到 mysql 数据库。我需要从本地计算机选择一个文件并读取其内容并存储在数据库中。我制作了一个html页面来选择.XLS类型的文件并向jsp页面发送请求。在jsp页面中我正在执行所有读取和复制操作。下面是jsp页面代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.io.*,java.sql.*,java.util.*,jxl.*, jxl.read.biff.BiffException"%>
<%@page import="javax.servlet.*" %>
<%@page import="javax.servlet.http.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
</head>
<body>
<%
ArrayList<String> list_A=new ArrayList<String>();
ArrayList<String> list_B=new ArrayList<String>();
ArrayList<String> list_C=new ArrayList<String>();
ArrayList<String> list_D=new ArrayList<String>();
ArrayList<String> list_E=new ArrayList<String>();
ArrayList<String> list_F=new ArrayList<String>();
String T=request.getParameter("T");
String X=request.getParameter("X");
String V=request.getParameter("V");
String f_name=request.getParameter("filename");
Cell rowData[] = null;
int rowCount = 0;
int columnCount = 0;
String filename="C:/loc/loc1/loc2/"+f_name;
WorkbookSettings ws = new WorkbookSettings();
Workbook workbook = Workbook.getWorkbook(new File(filename), ws);
Sheet s = workbook.getSheet(0);
rowCount = s.getRows();
columnCount = s.getColumns();
String text="";
for(int i = 1; i < rowCount; i++){
rowData = s.getRow(i);
if(rowData[0].getContents().length() != 0){
for(int j = 0; j < columnCount ;j++){
if(rowData[1].getContents().length()==0){
text=rowData[0].getContents();
}
else{
switch(j){
case 0:
list_A.add(rowData[j].getContents());
list_B.add(text);
break;
case 1:
list_F.add(rowData[j].getContents());
break;
case 2:
list_C.add(rowData[j].getContents());
break;
case 3:
list_D.add(rowData[j].getContents());
break;
case 4:
list_E.add(rowData[j].getContents());
break;
}
}
}
}
}
workbook.close();
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
PreparedStatement pst1 = null;
ResultSet rs1 = null;
int status=0;
String some="";
String somevalue="";
String somemore="";
String somemorevalue="";
String evenmore="";
String somethingmore="";
final String db_url = "jdbc:mysql://localhost/mydatabase";
final String user = "I";
final String passwd = "hidden";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(db_url, user, passwd);
pst = conn.prepareStatement("insert into atable(five columns name seperated by comma)values(?,?,?,?,?)");
for(int i=0;i<list_A.size();i++){
some=list_A.get(i).toString();
somevalue=list_B.get(i).toString();
somemore=list_C.get(i).toString();
somemorevalue=list_D.get(i).toString();
evenmore=list_E.get(i).toString();
somethingmore=list_F.get(i).toString();
pst.setString(1,some);
pst.setString(2,somevalue);
pst.setString(3,some more);
pst.setString(4,some more value);
pst.setString(5,even more);
pst.executeUpdate();
pst1=conn.prepareStatement("insert into table(column names here seperated by comma)values(?,?)");
pst1.setString(1,something);
pst1.setString(2,somethingmore);
pst1.executeUpdate();
}
}catch(SQLException e){
if(conn!=null){
conn.rollback();
status=1;
System.out.println("Rolling Back!!!");
}
e.printStackTrace();
}
finally{
try{
if(pst1!=null){
pst1.close();
}
if(pst!=null){
pst.close();
}
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
RequestDispatcher rd=request.getRequestDispatcher("page.jsp");
rd.include(request,response);
if(status==0){
out.println("Data is successfully inserted into the database");
}
else
{
out.println("Problem File reading into the database");
}
%>
我得到的错误是:
SEVERE: Servlet.service() for servlet [jsp] in context with path [/project] threw exception [javax.servlet.ServletException: jxl.read.biff.BiffException: Unable to recognize OLE stream] with root cause
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at org.apache.jsp.excelimport_jsp._jspService(excelimport_jsp.java:97)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Please suggest me where I am wrong.?
最佳答案
如果使用windows使用,ODBC数据源。您可以在此处定义 DSN 并将其映射到 Excel 工作表。
现在您只需读取数据并将其写入 mysql 数据库即可。
注意:为了简单起见
例如,您的 Excel 工作表如下所示。
ABCXYZPQR
所以,当你使用 pritinin 时,你可以这样做
SOP(插入(....)值('A','B','C'))
并将此文件另存为 *.sql 并立即在您的 my sql 数据库中运行。
关于mysql - 如何使用jxl将excel表格数据导入mysql数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136360/
我的域模型 package sample class Person { String lastName String firstName Date dateOfBirth int numberOfCh
我正在尝试从我的 .csv 文件中获取单元格数据,但出现错误:jxl.read.biff.BiffException: 无法识别 OLE 流 我不知道怎么解决,请给我一些解决方案此代码适用于 jxl
当我使用 jxl 编写 Excel 文件并使用您自己的单元格格式时,我收到此警告:已格式化单元格的最大数量已过期。使用默认格式”。我有大约 350 个单元格需要格式化,这对我来说似乎相对较少。我做错了
如何使用 jxl api 自动调整单元格中的内容? 最佳答案 该方法是不言自明的并评论: private void sheetAutoFitColumns(WritableSheet sheet) {
我的 excel 中有多行,除了第一行外内容都很小。只是为了在顶行插入一个大标题,我不希望后续行的宽度受到影响。有没有一种方法可以将顶行中的内容跨越多列而不影响后续行的宽度。 最佳答案 是的,通过使用
我的 excel 中有多行,除了第一行外内容都很小。只是为了在顶行插入一个大标题,我不希望后续行的宽度受到影响。有没有一种方法可以将顶行中的内容跨越多列而不影响后续行的宽度。 最佳答案 是的,通过使用
优点: Jxl对中文支持非常好,操作简单,方法看名知意。 Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写 支持Excel 95-
本文整理了Java中jxl.write.WriteException类的一些代码示例,展示了WriteException类的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
本文整理了Java中jxl.write.WritableCell类的一些代码示例,展示了WritableCell类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven
我正在使用 JXL 编写 Excel 报告。我需要为报告使用命名区域,并具有基于它们的公式。但是,加载 Excel 文件时,显示的值不正确。如果我单击单元格并按 Enter 键,则值会发生变化并且是正
JXL 隐藏工作表 我的需求是这样的 我需要创建一个工作表并将其隐藏(使用 JXL API)。 稍后,在程序中,我会将值填充到隐藏工作表中,该工作表是另一个工作表的引用。 有人可以告诉我如何使用 JX
我正在使用jxl将一个小jtable导出到excel,并且我选择JXL API来实现我的目标,一切都很顺利。但我仍然有一个关于数字格式的小问题: 如何添加小数点分隔符,如下例所示: ---------
我正在使用 jxl 创建 Excel 文件。我需要为日期类型单元格设置特定字体。当我编写文本单元格时,很容易做到: WritableFont arial10pt = new WritableFont(
有没有办法使用 JXL 为一系列单元格添加边框?一次为一个单元格设置边框非常繁琐。选择一系列单元格并合并它们可行,但不确定如何一次为一堆单元格设置边框。 最佳答案 有一种方法,先合并单元格,然后给一个
我使用 jxl 将用户输入的数据存储到 Excel 电子表格中。我希望能够在程序运行时关闭程序并打开 Excel 电子表格并查看数据。每当我这样做时,我都会收到一条消息,指出它的格式与文件扩展名中指定
SheetSettings settings = billSheet.getSettings(); settings.setHorizontalFreeze(1); settings.setVerti
我正在使用 JXL 编写 Excel 文件。客户希望某列显示一位小数。他们还希望单元格类型为“数字”。当我使用以下(测试)代码时,数字显示正确,但单元格类型为“自定义”。 File excelFile
您好,我有一个我加载的 excel 模板,我想更改其中的工作表名称。 WritableWorkbook workbook = jxl.Workbook.createWorkbook(file1,tem
在尝试执行以下代码时: Colour selectedColour = Colour.WHITE; myWritableCellFormat.setBackground(selectedColour)
本文整理了Java中jxl.biff.formula.Yylex类的一些代码示例,展示了Yylex类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一
我是一名优秀的程序员,十分优秀!