java搞定excel導(dǎo)入數(shù)據(jù)到SqlServer

我的需求是:

導(dǎo)入用戶=》數(shù)據(jù)庫中有的用戶不用導(dǎo)入 ::沒有賬號的導(dǎo)入姓名對應(yīng)的拼音

在這里插入圖片描述

解決步驟

Excel解決空值方式

excel定位空值

Excel中文轉(zhuǎn)換拼音

excel中文轉(zhuǎn)拼音

java中文轉(zhuǎn)換拼音

需要導(dǎo)入pinyin4j.jar包。


image.png
package www.yzq.com.tool;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class HanToPin {

        /**
         * 測試main方法
         * @param args
         */
        public static void main(String[] args) {
            System.out.println(ToFirstChar("漢字轉(zhuǎn)換為拼音").toUpperCase()); //轉(zhuǎn)為首字母大寫
            System.out.println(ToPinyin("漢字轉(zhuǎn)換為拼音")); 
        }
        /**
         * 獲取字符串拼音的第一個字母
         * @param chinese
         * @return
         */
        public static String ToFirstChar(String chinese){         
            String pinyinStr = "";  
            char[] newChar = chinese.toCharArray();  //轉(zhuǎn)為單個字符
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
            for (int i = 0; i < newChar.length; i++) {  
                if (newChar[i] > 128) {  
                    try {  
                        pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0].charAt(0);  
                    } catch (BadHanyuPinyinOutputFormatCombination e) {  
                        e.printStackTrace();  
                    }  
                }else{  
                    pinyinStr += newChar[i];  
                }  
            }  
            return pinyinStr;  
        }  
       
        /**
         * 漢字轉(zhuǎn)為拼音
         * @param chinese
         * @return
         */
        public static String ToPinyin(String chinese){          
            String pinyinStr = "";  
            char[] newChar = chinese.toCharArray();  
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();  
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
            for (int i = 0; i < newChar.length; i++) {  
                if (newChar[i] > 128) {  
                    try {  
                        pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0];  
                    } catch (BadHanyuPinyinOutputFormatCombination e) {  
                        e.printStackTrace();  
                    }  
                }else{  
                    pinyinStr += newChar[i];  
                }  
            }  
            return pinyinStr;  
        }  
        
}

java連接excel輸出數(shù)據(jù)

需要導(dǎo)入jxl.jar包


image.png
package www.yzq.com.tool;

import java.io.File;

import jxl.Sheet;
import jxl.Workbook;

public class ExcelImport {
    public static void main(String[] args) {
        ExcelImport excelImport = new ExcelImport();
        excelImport.getAllByExcel("c://dfs.xls");
    }

    /**
     * 查詢指定目錄中電子表格中所有的數(shù)據(jù)
     * 
     * @param file
     *            文件完整路徑
     * @return
     */
    public static void getAllByExcel(String file) {
        try {
            Workbook rwb = Workbook.getWorkbook(new File(file));
            Sheet rs = rwb.getSheet(0);// 或者rwb.getSheet(0)
            int clos = rs.getColumns();// 得到所有的列
            int rows = rs.getRows();// 得到所有的行

            for (int i = 1; i < rows; i++) {
                for (int j = 0; j < clos; j++) {
                    // 第一個是列數(shù),第二個是行數(shù)
                    String id = rs.getCell(j++, i).getContents();// 默認最左邊編號也算一列 所以這里得j++
                    String name = rs.getCell(j++, i).getContents();
                    String sex = rs.getCell(j++, i).getContents();
                    String num = rs.getCell(j, i).getContents();
                    
                    System.out.println("id:" + id + " name:" + name + " sex:" + sex + " num:" + num);
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

java連接數(shù)據(jù)庫

需要導(dǎo)入jar包


image.png
package www.yzq.com.tool;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class LinkSqlserver {
        public static void main(String[] args) {
            String user = "cczu";
            String password = "cczucczu";
            Connection conn;
            Statement stmt;
            ResultSet rs;
            String url = "jdbc:sqlserver://192.168.1.99:1433;DatabaseName=QY_NTXC;";
            String sql = "select * from t_user";
            try {
                // 連接數(shù)據(jù)庫
                conn = DriverManager.getConnection(url, user, password);
                // 建立Statement對象
                stmt = conn.createStatement();
                // 執(zhí)行數(shù)據(jù)庫查詢語句
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    String id = rs.getString("LOGIN_NAME");
                    String name = rs.getString("NAME");
                    String score = rs.getString("EMAIL");
                    String sex = rs.getString("PHONE");
                    System.out.println("登錄名: "+id+"昵稱"+name+"郵箱 "+score+"電話"+sex);
                }
                if (rs != null) {
                    rs.close();
                    rs = null;
                }
                if (stmt != null) {
                    stmt.close();
                    stmt = null;
                }
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
                System.out.println("數(shù)據(jù)庫連接失敗");
            }
        }
}

搭建關(guān)聯(lián)

將上面的方法建立下聯(lián)系就完成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爽哎,一起剝皮案震驚了整個濱河市滑频,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌权均,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異燥狰,居然都是意外死亡,警方通過查閱死者的電腦和手機斜筐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門龙致,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人顷链,你說我怎么就攤上這事目代。” “怎么了嗤练?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵榛了,是天一觀的道長。 經(jīng)常有香客問我煞抬,道長霜大,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任革答,我火速辦了婚禮战坤,結(jié)果婚禮上曙强,老公的妹妹穿的比我還像新娘。我一直安慰自己湖笨,他們只是感情好旗扑,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慈省,像睡著了一般臀防。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上边败,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天袱衷,我揣著相機與錄音,去河邊找鬼笑窜。 笑死致燥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的排截。 我是一名探鬼主播嫌蚤,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼断傲!你這毒婦竟也來了脱吱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤认罩,失蹤者是張志新(化名)和其女友劉穎箱蝠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垦垂,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡宦搬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了劫拗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片间校。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖杨幼,靈堂內(nèi)的尸體忽然破棺而出撇簿,到底是詐尸還是另有隱情,我是刑警寧澤差购,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布四瘫,位于F島的核電站,受9級特大地震影響欲逃,放射性物質(zhì)發(fā)生泄漏找蜜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一稳析、第九天 我趴在偏房一處隱蔽的房頂上張望洗做。 院中可真熱鬧弓叛,春花似錦、人聲如沸诚纸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畦徘。三九已至毕籽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間井辆,已是汗流浹背关筒。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杯缺,地道東北人蒸播。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像萍肆,于是被迫代替她去往敵國和親袍榆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345