如何用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;i<rsRows;i++){
      for(int j=0;j<rsColumns;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,写入没试,应该没问题吧,你把注释了的拿 来试一下吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-14

一般使用CSV格式。

    读取数据

    生成CSV文件

    下载CSV文件

第2个回答  2018-05-14
第一步:如何用POI操作Excel

@Test
public void createXls() throws Exception{
//声明一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
//声明表
HSSFSheet sheet = wb.createSheet("第一个表");
//声明行
HSSFRow row = sheet.createRow(7);
//声明列
HSSFCell cel = row.createCell(3);
//写入数据
cel.setCellValue("你也好");
第3个回答  2015-02-08
这个基本上不需要 java 就能做了
在 excel 里面直接建一个数据源就行了

另外,也可以用 etl 的工具,比如 kettle 之类的
第4个回答  推荐于2018-05-14
完整举例如下:
import java.io.*;
import java.sql.*;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

public class ExcelFile {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "root");
PreparedStatement psmnt = null;
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("Select * from student");

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Excel Sheet");
HSSFRow rowhead = sheet.createRow((short) 0);
rowhead.createCell((short) 0).setCellValue("Roll No");
rowhead.createCell((short) 1).setCellValue("Name");
rowhead.createCell((short) 2).setCellValue("Class");
rowhead.createCell((short) 3).setCellValue("Marks");
rowhead.createCell((short) 4).setCellValue("Grade");

int index = 1;
while (rs.next()) {

HSSFRow row = sheet.createRow((short) index);
row.createCell((short) 0).setCellValue(rs.getInt(1));
row.createCell((short) 1).setCellValue(rs.getString(2));
row.createCell((short) 2).setCellValue(rs.getString(3));
row.createCell((short) 3).setCellValue(rs.getInt(4));
row.createCell((short) 4).setCellValue(rs.getString(5));
index++;
}
FileOutputStream fileOut = new FileOutputStream("c:\\excelFile.xls");
wb.write(fileOut);
fileOut.close();
System.out.println("Data is saved in excel file.");
rs.close();
connection.close();
} catch (Exception e) {
}
}
}本回答被网友采纳

使用java如何将mysql数据库表中数据写入到一张新excel相应列下?求...
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class ExcelService { p...

如何用Java将excel数据导入数据库
public static void main(String[] args) { \/\/得到表格中所有的数据 List<StuEntity> listExcel=StuService.getAllByExcel("d:\/\/book.xls");\/*\/\/得到数据库表中所有的数据 List<StuEntity> listDb=StuService.getAllByDb();*\/ DBhepler db=new DBhepler();for (StuEntity stuEntity : list...

JAVA 导入数据库到Excel数据就是把图中Table中的信息放入Excel保存,需要...
需要导入jxl.jar (在网上可以下载,然后放到lib文件夹中)开放分类: java通过java操作excel表格的工具类库支持Excel 95-2000的所有版本生成Excel 2000标准格式支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使...

Java中Excel表格中的数据导入到数据库表中 求一个项目的源码 只要界 ...
导入excel一般分为两步,先上传再解析插入数据库。。。核心代码就是下面这两个方法,前几天刚写的例子:\/\/上传:public String doUpload() throws Exception{ System.out.println(upload);System.out.println(uploadContentType);System.out.println(uploadFileName);\/\/根据逻辑路径获取实际上传到服务器的...

怎么用java程序把excel导入到mysql数据库
读取Excel的第三方工具一般可以用jxl或者poi。jxl比较轻量,poi功能更强大一点。如果数据量较小,推荐jxl,百万级的推荐poi。从我代码中取出来的一部分,你自己参考下吧。流程就是:1、创建workbook对象 2、读取sheet 3、读取行,循环行读取列值 4、将列值拼装成insert语句 5、执行sql 其中要注意的几...

java程序把excel里面的数据读出来,并且插入到数据表中。
读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 param file 读取数据的源Excel param ignoreRows 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1 return 读出的Excel中数据的内容 throws FileNotFoundException throws IOException \/ public static String[][] ...

如何用Java导出数据存到excel里面
java中jxl导出数据到excel的例子 import jxl.*;import jxl.write.*;import java.io.*;import java.io.File.*;import java.util.*;public class excel { public static void main(String[] args){ String targetfile = "c:\/out.xls";\/\/输出的excel文件名 String worksheet = "List";\/\/输出的...

ideas导入excel数据到数据库
1、创建数据库表格:在数据库中创建与Excel表格相匹配的表格结构。2、导入Excel数据:使用Java代码或者第三方库将Excel数据读入并存储到Java数据结构(如List或Map)中。3、连接数据库:使用JDBC或者其他ORM框架建立与数据库的连接。4、将数据写入数据库:将Java数据结构中的数据写入到数据库表格中。

如何在Java中导入Excel表数据
就是在excel下面那个sheet1,sheet2.这个方法表名使用第一个sheet并且命名为"第一页"Labellable=null;\/\/label就是某一个小单元格2层循环,给每个labellabel=newLabel(列,行,值);\/\/都是从0开始的.就是给第几列地几行的labe里写东西s.addCell(l);\/\/把这个lable加入到sheet中最后wb.write();wb....

java中怎么把excel导入数据库?
1、利用Excel第三方工具,将Excel文件读取到内存中。使用最简单,方便的工具是apache的poi工具包,自己网上下载 http:\/\/poi.apache.org\/ ,使用方法网上一搜一大片。2、如果是对于特别大的excel(大于20M的话),简单的读取方法就容易内存溢出了,需要采用流式读取的方式,参考http:\/\/poi.apache.org\/...

相似回答