本文目录一览:

java excel怎么快速导入

快速导入也是需要java的poi的,可以参照如下代码:

public ListScoreInfo loadScoreInfo(String xlsPath) throws IOException{

List temp = new ArrayList();

FileInputStream fileIn = new FileInputStream(xlsPath);

//根据指定的文件输入流导入Excel从而产生Workbook对象

Workbook wb0 = new HSSFWorkbook(fileIn);

//获取Excel文档中的第一个表单

Sheet sht0 = wb0.getSheetAt(0);

//对Sheet中的每一行进行迭代

for (Row r : sht0) {

//如果当前行的行号(从0开始)未达到2(第三行)则从新循环

If(r.getRowNum()1){

continue;

}

//创建实体类

ScoreInfo info=new ScoreInfo();

//取出当前行第1个单元格数据,并封装在info实体stuName属性上

info.setStuName(r.getCell(0).getStringCellValue());

info.setClassName(r.getCell(1).getStringCellValue());

info.setRscore(r.getCell(2).getNumericCellValue());

info.setLscore(r.getCell(3).getNumericCellValue());

temp.add(info);

}

fileIn.close();

return temp;

}

如何把java查询出的内容导入到excel表格

java查询出的内容导入到excel表格

/**导出数据为XLS格式

* @param fos

* @param bo

*/

public void writeExcelBo(FileOutputStream fos, java.util.Vector ve)

{

jxl.write.WritableWorkbook wwb;

try

{

wwb= Workbook.createWorkbook(fos);

jxl.write.WritableSheet ws= wwb.createSheet("booksheet", 10);

ws.addCell(new jxl.write.Label(0, 1, "书目ID"));

ws.addCell(new jxl.write.Label(1, 1, "ISBN"));

ws.addCell(new jxl.write.Label(2, 1, "定价"));

ws.addCell(new jxl.write.Label(3, 1, "书名"));

ws.addCell(new jxl.write.Label(4, 1, "原书名"));

ws.addCell(new jxl.write.Label(5, 1, "副题名"));

ws.addCell(new jxl.write.Label(6, 1, "著者"));

ws.addCell(new jxl.write.Label(7, 1, "译者"));

ws.addCell(new jxl.write.Label(8, 1, "版次"));

ws.addCell(new jxl.write.Label(9, 1, "出版地"));

ws.addCell(new jxl.write.Label(10, 1, "出版社"));

ws.addCell(new jxl.write.Label(11, 1, "出版日期"));

ws.addCell(new jxl.write.Label(12, 1, "页数"));

ws.addCell(new jxl.write.Label(13, 1, "书高"));

ws.addCell(new jxl.write.Label(14, 1, "装帧"));

ws.addCell(new jxl.write.Label(15, 1, "丛书名"));

ws.addCell(new jxl.write.Label(16, 1, "一般性附注项"));

ws.addCell(new jxl.write.Label(17, 1, "简介"));

ws.addCell(new jxl.write.Label(18, 1, "主题词"));

ws.addCell(new jxl.write.Label(19, 1, "中图法分类"));

ws.addCell(new jxl.write.Label(20, 1, "更新日期"));

ws.addCell(new jxl.write.Label(21, 1, "本数"));

book=new Book[ve.size()];

for (int i= 0; i ve.size(); i++)

{

book[i]= (Book)ve.get(i);

ws.addCell(new jxl.write.Label(0, i + 2, "" + book[i].getBookId()));

ws.addCell(new jxl.write.Label(1, i + 2, book[i].getIsbn()));

ws.addCell(new jxl.write.Label(2, i + 2, "" + book[i].getPrice()));

ws.addCell(new jxl.write.Label(3, i + 2, book[i].getBookTitle()));

ws.addCell(new jxl.write.Label(4, i + 2, book[i].getOldFilename()));

ws.addCell(new jxl.write.Label(5, i + 2, book[i].getSubTitle()));

ws.addCell(new jxl.write.Label(6, i + 2, book[i].getWriter()));

ws.addCell(new jxl.write.Label(7, i + 2, book[i].getTranscribe()));

ws.addCell(new jxl.write.Label(8, i + 2, "" + book[i].getVersion()));

ws.addCell(new jxl.write.Label(9, i + 2, book[i].getPublishCity()));

ws.addCell(new jxl.write.Label(10, i + 2, book[i].getPublisher()));

ws.addCell(new jxl.write.Label(11, i + 2, book[i].getPublishDate().toString()));

ws.addCell(new jxl.write.Label(12, i + 2, "" + book[i].getPage()));

ws.addCell(new jxl.write.Label(13, i + 2, "" + book[i].getHight()));

ws.addCell(new jxl.write.Label(14, i + 2, book[i].getInstall()));

ws.addCell(new jxl.write.Label(15, i + 2, book[i].getSeries()));

ws.addCell(new jxl.write.Label(16, i + 2, book[i].getNotes()));

ws.addCell(new jxl.write.Label(17, i + 2, book[i].getPrecisnotes()));

ws.addCell(new jxl.write.Label(18, i + 2, book[i].getSubject()));

ws.addCell(new jxl.write.Label(19, i + 2, book[i].getCls().replaceAll("_", "")));

ws.addCell(new jxl.write.Label(20, i + 2, book[i].getUpdatedate().toString()));

ws.addCell(new jxl.write.Label(21, i + 2, "0"));

}

jxl.write.WritableFont wfc=

new jxl.write.WritableFont(

WritableFont.ARIAL,

255,

WritableFont.BOLD,

false,

UnderlineStyle.NO_UNDERLINE,

jxl.format.Colour.BLACK);

jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);

ws.addCell(new jxl.write.Label(0, 0, "为保证您提交定单的稳定和正确,导入定单时候请勿更改此表格式(请勿更改书目ID,订购本数自行添加!)"));

wwb.write();

//关闭Excel工作薄对象

wwb.close();

} catch (IOException e)

{} catch (RowsExceededException e)

{} catch (WriteException e)

{}

}

//导入EXCEL

if (f.getName().indexOf(".xls") 0)

{

try

{

fis= new FileInputStream(f);

BookBean bob= new BookBean();

UserBean usb= new UserBean();

jxl.Workbook rwb= Workbook.getWorkbook(fis);

jxl.Sheet sh= rwb.getSheet(0);

int rowCount= sh.getRows();

SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");

book= new Book[rowCount - 1];

for (int i= 1; i rowCount; i++)

{

book[i - 1]= new Book();

jxl.Cell[] ce= sh.getRow(i);

book[i - 1].setIsbn(ce[0].getContents().toString());

book[i - 1].setSeries(ce[1].getContents().toString());

book[i - 1].setBookTitle(ce[2].getContents().toString());

book[i - 1].setWriter(ce[3].getContents().toString());

book[i - 1].setTranscribe(ce[4].getContents().toString());

book[i - 1].setPublisher(ce[5].getContents().toString());

book[i - 1].setPublishDate(sdf.parse(ce[6].getContents().toString(), new ParsePosition(0)));

book[i-1].setVersion(Integer.parseInt(ce[7].getContents().toString()));

book[i-1].setPage(Integer.parseInt(ce[8].getContents().toString()));

book[i-1].setCls(ce[9].getContents().toString());

book[i-1].setPrecisnotes(ce[10].getContents().toString());

book[i-1].setInstall(ce[11].getContents().toString());

book[i-1].setPrice(Float.parseFloat(ce[12].getContents().toString()));

book[i-1].setUserid(usb.getUser().getUserid());

getVector().addElement(book[i - 1]);

}

rwb.close();

fis.close();

} catch (FileNotFoundException e)

{} catch (BiffException e)

{} catch (IOException e)

{} catch (NumberFormatException e)

{

ShowMessage("数据导入失败,请按照本软件要求的EXCEL格式导入定单");

}

}

java怎么批量导入excel数据

两种方案:1.可以对数据库中的这张表进行本地缓存处理,验证时调用缓存进行匹配验证。2.用程序生成需要导入excel的数据模板,在模板里将要验证的这一列做成下拉框。此模板条件下的excel数据文件批量导入时即不用校验。具体采用哪种视你的应

如何在Java中导入Excel表数据

import java.io.*;

import java.text.SimpleDateFormat;

import java.util.*;

import java.sql.*;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

import jxl.*;

public class SimUpdate {

private String fileName;

public ZfzSimUpdate(String fileName){

this.fileName = fileName;

}

static Map tNames;

static{

tNames = new HashMap();

}

/**

* 用于产生 数据库的 ID 值,组成 [年月日时分秒(100-999)] 总共 17 位数.

* 根据不同的表名,可保证同一秒内产生的 ID 号不重复

*/

private static String getDtime() {

String rid;

Date nd = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

rid = sdf.format(nd);

return rid;

}

public String getSeqNumber(String tableName) {

if(tableName == null || "".equals(tableName))

tableName = "GENERY";

Integer it;

// noinspection SynchronizeOnNonFinalField

synchronized(tNames){

it = (Integer)tNames.get(tableName);

if(it == null){

it = new Integer(100);

tNames.put(tableName, it);

}else{

if(it.intValue() 998)

it = new Integer(100);

else

it = new Integer(1 + it.intValue());

tNames.put(tableName, it);

}

}

return getDtime() + String.valueOf(it);

}

private void updateDb(){

try{

Connection conn = DbPool.connectDB();

if(conn != null){

Statement stmt = conn.createStatement();

/**********************************************/

jxl.Workbook rwb = null;

try{

//构建Workbook对象 只读Workbook对象

//直接从本地文件创建Workbook

//从输入流创建Workbook

InputStream is = new FileInputStream(fileName);

rwb = Workbook.getWorkbook(is);

//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中

//Sheet的下标是从0开始的

//获取第一张Sheet表

Sheet rs = rwb.getSheet(0);

//获取Sheet表中所包含的总列数

int rsColumns = rs.getColumns();

//获取Sheet表中所包含的总行数

int rsRows = rs.getRows();

//获取指这下单元格的对象引用

String simNumber = "",termSeqId = "";

//指定SIM卡号及序列号

for(int i=0;irsRows;i++){

for(int j=0;jrsColumns;j++){

Cell cell = rs.getCell(j,i);

if(j==0){

simNumber = cell.getContents();

}

termSeqId = "633"+simNumber;

}

String sql = "查询SQL";

int isOk = stmt.executeUpdate(sql);

if(isOk == 0 !simNumber.equals("")){

String termId = getSeqNumber("termInf");

String insertSql = "自定义INSERT";

int isAdd = stmt.executeUpdate(insertSql);

if(isAdd 0){

System.out.println("成功插入第"+i+"条数据");

}

}

//System.out.println("SIM卡号:"+simNumber+",序列号:"+termSeqId);

}

//以下代码为写入新的EXCEL,这里不使用,所以注释

/*

//利用已经创建的Excel工作薄创建新的可写入的Excel工作薄

jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("D://Book2.xls"),rwb);

//读取第一张工作表

jxl.write.WritableSheet ws = wwb.getSheet(0);

//获取第一个单元格对象

jxl.write.WritableCell wc = ws.getWritableCell(0, 0);

//决断单元格的类型,做出相应的转化

if (wc.getType() == CellType.LABEL) {

Label l = (Label) wc;

l.setString("The value has been modified.");

}

//写入Excel对象

wwb.write();

wwb.close();

*/

}catch(Exception e){

e.printStackTrace();

}

finally{

//操作完成时,关闭对象,翻译占用的内存空间

rwb.close();

}

/*********************************************/

}

}catch(Exception e){

e.printStackTrace();

}

}

public static void main(String args[]){

DbPool dbPool = new DbPool("dbConn.cfg");//连接数据库

SimUpdate simUpdate = new SimUpdate("zfz_sim.xls");

simUpdate.updateDb();

}

}

我只用了读取XLS,写入没试,应该没问题吧,你把注释了的拿 来试一下吧

java中怎么把excel导入数据库

1、利用Excel第三方工具,将Excel文件读取到内存中。使用最简单,方便的工具是apache的poi工具包,自己网上下载  ,使用方法网上一搜一大片。

2、如果是对于特别大的excel(大于20M的话),简单的读取方法就容易内存溢出了,需要采用流式读取的方式,参考 

3、将已读入内存的Excel数据,整理成写数据库的数据结构,然后插入数据库。这部分工作应该不用介绍了,就是基本的数据库操作方法,与excel无关了

具体如下:

1、简介

编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

2、汇编程序

汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。

3、执行原理

计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级编程硬件程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。