问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样利用java实现把数据自动导入excel?

发布网友 发布时间:2022-04-20 19:10

我来回答

5个回答

热心网友 时间:2024-03-01 22:09

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,写入没试,应该没问题吧,你把注释了的拿 来试一下吧

热心网友 时间:2024-03-01 22:09

一般使用CSV格式。

读取数据

生成CSV文件

下载CSV文件

热心网友 时间:2024-03-01 22:10

第一步:如何用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("你也好");

热心网友 时间:2024-03-01 22:11

这个基本上不需要 java 就能做了
在 excel 里面直接建一个数据源就行了

另外,也可以用 etl 的工具,比如 kettle 之类的

热心网友 时间:2024-03-01 22:11

完整举例如下:
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) {
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 如何用java导入excel数据到数据库 java 中怎么从excel中导入数据 如何把java查询出的内容导入到excel表格 java怎么批量导入excel数据 急!高手进,关于java导入excel的问题! 如何在java中导入导出excel 如何在java程序中导入excel数据 java导入excel怎么导入? 我手机的新浪微博为出现错误代码怎么办 新浪微博错误代码c502 如何解决 水晶杯与玻璃杯 北京名烟名酒回收教您如何鉴别杯子... 水晶杯跟玻璃杯有什么区别?要怎么分辨?拜托了各... 为什么要用水晶杯而不是玻璃杯,两者的区别是什么? 水晶玻璃杯和普通玻璃杯的区别 水晶杯与玻璃杯的区别在那里,如何识别 你好,水晶杯和玻璃杯的区别? 水晶杯跟玻璃杯有什么区别?要怎么分辨? 微博账号异常,代码3022608什么意思? 汽车空调内部怎么清洗 汽车空调有必要清洗吗? java web 怎么导入excel文件 java如何将数据导入Excel模板 java中如何导入Excel,并给出模板 java poi怎么导入excel数据 java开发怎么导入导出excel里面信息内容? java excel poi 怎么导入 如何把excel数据导入java 日利率0.045,一万一天多少钱 借一万,日利息0.03%,一个月利息多少 日利率0.065.10000元一年是多少钱? 一万块日利息0.07一个月多少钱啊利息。 日利息0.18怎么算?比如一万那一个月又是多少 为什么借10000日利率0.065一年的利息是1000多? 借一万日利率5.5是多少? 借10000日利率0.034一个月多少利息是多少? 10000元日利息0.55一个月多少利息 日利率一万是4.5一千元日利率是多少? 一万日利率0.035一个月是多少 新浪微博表情代码 腾讯视频里致敬逝去的他们之宇智波鼬 的那首歌叫甚...