jquery獲取excel表格數(shù)據(jù)

為了獲取excel表格信息問遍了度娘,但是結(jié)果很不爽长已,看了十個文章九個是一樣的畜眨,剩下那個不一樣是因?yàn)閺?fù)制的時候沒復(fù)制全!J跷汀康聂!不止這些,復(fù)制也就算了胞四,你也得給截圖和注釋啊早抠,整個帖子赤裸裸的代碼什么意思啊撬讽?蕊连??
為了造福眾多單身屌絲們游昼。我覺得給之前的帖子的代碼寫明用法甘苍,各位如果覺得哥們兒某句解釋寫的不是很明白可以吐槽,我好改進(jìn)烘豌,嘿嘿载庭,下面進(jìn)入正題吧騷年們

一、首先需要需要引入需要的包

這里是cdn引入的,不用下載囚聚,所以直接復(fù)制用就行了靖榕,不用那么麻煩自己去網(wǎng)上找包

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script>

二、一個上傳文件的file類型的input標(biāo)簽

這里給它起個id就叫excel-file吧

<input type="file" id="excel-file">

三顽铸、js相關(guān)操作對選中.xls文件進(jìn)行解析茁计,獲取數(shù)據(jù)

//給input標(biāo)簽綁定change事件,一上傳選中的.xls文件就會觸發(fā)該函數(shù)
$('#excel-file').change(function(e) {
    var files = e.target.files;
    var fileReader = new FileReader();
        fileReader.onload = function(ev) {
            try {
                var data = ev.target.result
                var workbook = XLSX.read(data, {
                        type: 'binary'
                    }) // 以二進(jìn)制流方式讀取得到整份excel表格對象
                var persons = []; // 存儲獲取到的數(shù)據(jù)
            } catch (e) {
                console.log('文件類型不正確');
                return;
            }
    
            // 表格的表格范圍谓松,可用于判斷表頭是否數(shù)量是否正確
            var fromTo = '';
            // 遍歷每張表讀取
            for (var sheet in workbook.Sheets) {
                if (workbook.Sheets.hasOwnProperty(sheet)) {
                    fromTo = workbook.Sheets[sheet]['!ref'];
                    console.log(fromTo);
                    persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                    // break; // 如果只取第一張表星压,就取消注釋這行
                }
            }
            //在控制臺打印出來表格中的數(shù)據(jù)
            console.log(persons);
       };
       // 以二進(jìn)制方式打開文件
       fileReader.readAsBinaryString(files[0]);
});

四、上傳的.xls表格的信息

凄凄切切 1 1111
44444 2 1112
44445 3 1113
44446 4 1114
44446 5 1115
44448 6 1116
44449 7 1117
44450 8 1118
44451 9 1119
44452 10 1120
44453 11 1121
44454 12 1122
44455 13 1123
44456 1124
3www
qqqq

五鬼譬、運(yùn)行結(jié)果

運(yùn)行結(jié)果.png

讓我們爽的是他返回的是json數(shù)組娜膘,這真是太方便我們操作了,但是有的吃瓜群眾可能看不懂了优质,就一個‘凄凄切切’數(shù)據(jù)竣贪,怎么出來那么多,其實(shí)我們excel表的第一行它默認(rèn)為表頭巩螃,也就是說,'1','1111',‘凄凄切切’這三個都是表頭演怎,它們的健值對所對應(yīng)的值就是這一列的值,數(shù)組下表對應(yīng)的則是表格的一行數(shù)據(jù)

六牺六、最通俗易懂的解釋

如果有的好漢看了之后也沒懂颤枪,但是就是想拿過來直接用的話汗捡,那些下面直接copy運(yùn)行就ok啦

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
        <script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script>
    </head>

    <body>
        <input type="file" id="excel-file">
        <script>
            $('#excel-file').change(function(e) {
                var files = e.target.files;
                var fileReader = new FileReader();
                fileReader.onload = function(ev) {
                    try {
                        var data = ev.target.result,
                            workbook = XLSX.read(data, {
                                type: 'binary'
                            }), // 以二進(jìn)制流方式讀取得到整份excel表格對象
                            persons = []; // 存儲獲取到的數(shù)據(jù)
                    } catch (e) {
                        console.log('文件類型不正確');
                        return;
                    }
    
                    // 表格的表格范圍淑际,可用于判斷表頭是否數(shù)量是否正確
                    var fromTo = '';
                    // 遍歷每張表讀取
                    for (var sheet in workbook.Sheets) {
                        if (workbook.Sheets.hasOwnProperty(sheet)) {
                            fromTo = workbook.Sheets[sheet]['!ref'];
                            console.log(fromTo);
                            persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                            // break; // 如果只取第一張表,就取消注釋這行
                        }
                    } 
                    console.log(persons);
                };   
                // 以二進(jìn)制方式打開文件
                fileReader.readAsBinaryString(files[0]);
            });
        </script>
    </body>

</html>

如果各位看了有收獲的話請記得點(diǎn)個贊扇住,火箭刷起來4郝啤!艘蹋!

程序員必備圖.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锄贼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子女阀,更是在濱河造成了極大的恐慌宅荤,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浸策,死亡現(xiàn)場離奇詭異冯键,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)庸汗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門惫确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事改化⊙诟颍” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵陈肛,是天一觀的道長揍鸟。 經(jīng)常有香客問我,道長燥爷,這世上最難降的妖魔是什么蜈亩? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮前翎,結(jié)果婚禮上稚配,老公的妹妹穿的比我還像新娘。我一直安慰自己港华,他們只是感情好道川,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著立宜,像睡著了一般冒萄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橙数,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天尊流,我揣著相機(jī)與錄音,去河邊找鬼灯帮。 笑死崖技,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钟哥。 我是一名探鬼主播迎献,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腻贰!你這毒婦竟也來了吁恍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤播演,失蹤者是張志新(化名)和其女友劉穎冀瓦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體写烤,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翼闽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了顶霞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肄程。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锣吼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蓝厌,到底是詐尸還是另有隱情玄叠,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布拓提,位于F島的核電站读恃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏代态。R本人自食惡果不足惜寺惫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹦疑。 院中可真熱鬧西雀,春花似錦、人聲如沸歉摧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叁温。三九已至再悼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膝但,已是汗流浹背冲九。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跟束,地道東北人莺奸。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像泳炉,于是被迫代替她去往敵國和親憾筏。 傳聞我的和親對象是個殘疾皇子嚎杨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容