Java實現(xiàn)把excel xls中數(shù)據(jù)轉為可直接插入數(shù)據(jù)庫的sql文件
我的一貫風格,代碼說明一切。。
廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:
package Tools; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import jxl.Sheet; import jxl.Workbook; import entity.Student; public class ConvertXMSToSQL { /** * 從xls表格中獲取數(shù)據(jù),生成可執(zhí)行的sql文件,用以插入數(shù)據(jù)庫,注意需要引入jxl包!支持int,Integer,long,Long,String * ,可自行擴展 * * @param args * @throws IllegalArgumentException * @throws IllegalAccessException */ public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException { // 得到表格中所有的數(shù)據(jù) List<Student> listExcel = getAllByExcel("C:\\Users\\xxx\\Desktop\\zzz.xls"); try { String path = "C:\\Users\\xxx\\Desktop\\convert.sql";// 文件保存路徑、名字 File file = new File(path); BufferedWriter ow = new BufferedWriter(new FileWriter(file)); for (Student c : listExcel) { String sql = "insert into cfg_avatar values (" + outSql(c) + ")"; ow.write(sql + ";" + "\n"); }// 寫入內(nèi)容 ow.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 從xls中獲取數(shù)據(jù) * * @param file * @return */ public static List<Student> getAllByExcel(String file) { List<Student> list = new ArrayList<Student>(); try { Workbook rwb = Workbook.getWorkbook(new File(file)); Sheet rs = rwb.getSheet(0); int clos = rs.getColumns();// 得到所有的列 int rows = rs.getRows();// 得到所有的行 // 樣例中,數(shù)據(jù)從第三列第一行開始 for (int i = 2; i < rows; i++) { // 取得的每一行的所有數(shù)據(jù)存入listString List<String> listString = new ArrayList<String>(); for (int j = 0; j < clos; j++) { String str = rs.getCell(j, i).getContents(); listString.add(str); } Student Student = (Student) newObject(new Student(), listString); list.add(Student); } } catch (Exception e) { e.printStackTrace(); } return list; } /** * 使用反射設置數(shù)據(jù)。此例中可設置的數(shù)據(jù)類型有限,沒有的請自己添加?。?! * * @param obj * @param list * @return * @throws IllegalArgumentException * @throws IllegalAccessException */ public static Object newObject(Object obj, List<String> list) throws IllegalArgumentException, IllegalAccessException { Field[] field = obj.getClass().getDeclaredFields(); for (int i = 0; i < field.length; i++) { Field f = field[i]; f.setAccessible(true); if (f.getType() == String.class) { f.set(obj, list.get(i)); } if (f.getType() == Integer.class) { f.set(obj, Integer.parseInt(list.get(i))); } if (f.getType() == int.class) { f.set(obj, Integer.parseInt(list.get(i))); } if (f.getType() == Long.class) { f.set(obj, Long.parseLong(list.get(i))); } if (f.getType() == long.class) { f.set(obj, Long.parseLong(list.get(i))); } } return obj; } /** * * @param obj * @return * @throws IllegalArgumentException * @throws IllegalAccessException */ public static String outSql(Object obj) throws IllegalArgumentException, IllegalAccessException { StringBuffer buffer = new StringBuffer(); Field[] field = obj.getClass().getDeclaredFields(); for (int i = 0; i < field.length; i++) { Field f = field[i]; f.setAccessible(true); if (f.getType() == String.class) { buffer.append("'"); } buffer.append(f.get(obj)); if (f.getType() == String.class) { buffer.append("'"); } if (i < field.length - 1) { buffer.append(","); } } return buffer.toString(); } }
有關Java實現(xiàn)把excel xls中數(shù)據(jù)轉為可直接插入數(shù)據(jù)庫的sql文件的知識,小編就給大家介紹這么多,希望對大家有所幫助!
- java 使用poi 導入Excel數(shù)據(jù)到數(shù)據(jù)庫的步驟
- java實現(xiàn)批量導入Excel表格數(shù)據(jù)到數(shù)據(jù)庫
- Java實現(xiàn)批量導入excel表格數(shù)據(jù)到數(shù)據(jù)庫中的方法
- Java如何將Excel數(shù)據(jù)導入到數(shù)據(jù)庫
- Java用jxl讀取excel并保存到數(shù)據(jù)庫的方法
- java導出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法
- Java實現(xiàn)Excel導入導出數(shù)據(jù)庫的方法示例
- Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫
- java導出數(shù)據(jù)庫的全部表到excel
- Java 使用poi把數(shù)據(jù)庫中數(shù)據(jù)導入Excel的解決方法
- Java實現(xiàn)上傳Excel文件并導入數(shù)據(jù)庫
相關文章
java idea如何根據(jù)請求路徑url自動找到對應controller方法插件
這篇文章主要介紹了java idea如何根據(jù)請求路徑url自動找到對應controller方法插件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Spring?Security實現(xiàn)分布式系統(tǒng)授權方案詳解
這篇文章主要介紹了Spring?Security實現(xiàn)分布式系統(tǒng)授權,本節(jié)完成注冊中心的搭建,注冊中心采用Eureka,本文通過示例代碼圖文相結合給大家介紹的非常詳細,需要的朋友可以參考下2022-02-02IDEA 2020.1 版自動導入MAVEN依賴的方法(新版MAVEN無法自動導入/更新POM依賴、MAVEN設置自動更
這篇文章主要介紹了IDEA 2020.1 版自動導入MAVEN依賴的方法(新版MAVEN無法自動導入/更新POM依賴、MAVEN設置自動更新、自動更新快捷鍵),需要的朋友可以參考下2020-08-08詳解Idea SpringBoot搭建SpringCloud的準備工作(推薦)
這篇文章主要介紹了Idea SpringBoot搭建SpringCloud的準備工作(推薦),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10在eclipse導入Java的jar包的方法JDBC(圖文說明)
這篇文章主要介紹了在eclipse導入Java 的jar包的方法 JDBC 圖文說明 ,需要的朋友可以參考下2015-09-09Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突
這篇文章主要介紹了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突的相關資料,需要的朋友可以參考下2017-01-01