1. 程式人生 > >JS 讀取Excel檔案(xls) 相容Chrome/IE/Firefox

JS 讀取Excel檔案(xls) 相容Chrome/IE/Firefox

想讀取Excel首先需要兩個JS檔案。

下載地址

Html程式碼:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
	<!-- Excel外掛 -->
  <script src="../../../public/static/js/shim.js"></script>
  <script src="../../../public/static/js/xls.js"></script>

  <!-- 自定義JS -->
  <script src="../../../public/static/js/excel.acc.js"></script>
 </head>

 <body>
	<!-- 必須有個檔案上傳 -->
  	<input type="file" id="xlf" name="xlf" />
	<br>
	<!-- 輸出檢視 -->
	<textarea id="txtArea" cols=50 rows=10></textarea>

	<script type='text/javascript'>

		var drop = document.getElementById('xlf');

		//新增Change繫結事件
		if(drop.addEventListener) {
  			drop.addEventListener('change', handleFile, false);
		}

		function excelReader(data,json) {
			//輸出
			document.getElementById('txtArea').innerText = json;
		}

	</script>
 </body>
</html>

JS程式碼(excel.acc.js): 
// 依賴於shim.js、xls.js
// 

var X = XLS;

function to_json(workbook) {
    var result = {};
    workbook.SheetNames.forEach(function (sheetName) {
        var roa = XLS.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
        if (roa.length > 0) {
            result[sheetName] = roa;
        }
    });
    return result;
}

function fixdata(data) {
    var o = "", l = 0, w = 10240;
    for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
    o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
    return o;
}

function process_wb(wb,type) {
    var output = "";
    switch (type) {
        case "json":
            output = JSON.stringify(to_json(wb), 2, 2);
            break;
        case "form":
            output = to_formulae(wb);
            break;
        default:
            output = to_csv(wb);
    }
    //if (out.innerText === undefined) out.textContent = output;
    //else out.innerText = output;
    return output;
} 

function ReadExcel(out) {

	//如果只要json 可以不用轉換
    var exlData = JSON.parse(out);

    // Page1 其實是表格頁標籤名字,具體示實際名稱
    // if (exlData.Page1 == null || exlData.Page1 == undefined) {
    //     msgErro("未查詢到Excel檔案中的資料!");
    //     //saveLoading('hide');
    //     return;
    // }
   
	//傳出外面
	excelReader(exlData,out);
}

//繫結 Input Change 事件
function handleFile(e) {	

    if (e.target.files[0].name.indexOf(".xls") < 0) {
        msgErro("請選擇.xls格式檔案!");
        return;
    }
    //saveLoading('show');
   
    var files = e.target.files;
    var output = "";
    var f = files[0];
    {
        var reader = new FileReader();
        var name = f.name;
        reader.onload = function (e) {

            var data = e.target.result;
    
            var arr = fixdata(data);
            var wb = X.read(btoa(arr), { type: 'base64' });

            output = process_wb(wb, "json");

            ReadExcel(output);
        };

        reader.readAsArrayBuffer(f);
    }
}


如上兩頁程式碼+JS-Excel外掛即可完成讀取Xls檔案。 

相關推薦

JS 讀取Excel檔案(xls) 相容Chrome/IE/Firefox

想讀取Excel首先需要兩個JS檔案。 下載地址 Html程式碼: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.

java使用POI讀取excel檔案相容xls和xlsx

public List<Double> readExcels(InputStream is)throws Exception{List<Double> xlsxList = new ArrayList<Double>();    try {             if(i

struts:poi讀取excel檔案相容2003、2007)

1、jsp程式碼: <div style="margin-bottom:10px;"> <input type="file" name="filedata" id="file" multiple/> <input type="button" val

js讀取Excel的資料(僅IE有效)

/** * desc:解析一個本地excel,返回一個二維陣列 * param {}物件 屬性 path,sheet,rowStart,rowEnd,colStart,colEnd,cols, cols為陣列如[1,3,5]表示135列 * param.path (Excel的路徑) 必需

js 讀取excel 檔案

<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" cont

js讀取excel檔案內容

<script type="text/javascript">function read_excel(){debugger;   var filePath="E:\ceshi.xlsx"; //要讀取的xls   var col_start=1; //從第1列開

js讀取EXCEL檔案,進行一些資料處理

1.僅在IE瀏覽器下有效,因為只有IE支援ActiveXObject("Excel.application"); 2.程式碼如下 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

python+selenium的unittest框架通過讀取properties檔案自定義選擇IE/Firefox/Chrome瀏覽器

Browser.properties browser=Chromemain.py class Properties: fileName = "" def __init__(s

簡單的瀏覽器列印demo(相容chrome/IE/firefox,表現略有差異)

目前在chrome/IE11/firefox下都能執行,但效果略有差異,只有chrome有預覽功能。 chrome效果: firefox效果: IE效果圖: 程式碼: <!d

matlab中讀取excelxls檔案

1.使用函式xlsread讀取單個檔案(1)num=xlsread(filename)filename是單引號括起來的帶路徑的檔名,函式直接讀取filename所指檔案的sheet1中的資料區域儲存到雙精度矩陣num中;其中 資料區域的選取規則是:對錶格前幾個含有非數值的行(列)直接忽略,不算入資料區域;另

利用 js-xlsx 讀取excel檔案內容

下載js-xlsx到dist複製出xlsx.full.min.js引入到頁面中 然後通過FileReader物件讀取檔案利用js-xlsx轉成json資料 <!DOCTYPE html> <html> <head> <met

php 讀取excel檔案 支援 csv、xls、xlsx .thinkphp

專案需求要匯入 各種excel檔案 支援這三種類型。然後做下記錄方便以後使用。 先是上附件 PHPExcel 檔案 下載地址 百度 https://pan.baidu.com/s/1BmhnYd9arWqFD2jUCHUx8Q 下面我們來程式碼 tp 中放在 目錄

c#讀取excelxls和xlsx檔案的方法

ResultInfo<List<HighEndNetFinancialEntity>> Result = new ResultInfo<List<HighEndNetFinancialEntity>>(); string ver

poi匯入匯出excel檔案相容.xls和.xlsx兩種格式

這個是測試類: package com.fishroad.util; import java.io.File; import java.io.FileInputStream; import java.math.BigDecimal; import java.text.Si

java利用poi讀取Excel檔案

java讀取Excel檔案,筆者認為:從結構上來看,Excel檔案是由一個一個的單元格組成的,有點像細胞cell,逐行的排列。那麼我們讀的時候也應該逐行逐行的讀,從左到右的尋找每一個cell。一、例項程式碼: 只是實現了一種方式,因為依照讀取內容的不同,讀取的後想要的操作不同,因此不能苟同全部,只是方法是相

關於NPOI匯出excel檔案(xls和xlsx兩種格式)提示格式不符的問題

這兩天在做匯出excel檔案的時候遇到這個問題 本來我匯出的格式是xlsx格式的,但是下載得到的檔案格式變成了xls, 一開始以為是返回的contenttype設定錯了   return File(ms, "application/vnd.ms-excel", "新車型匯入模板檔案.xls

【Python筆記】操作讀取Excel檔案、文字檔案

需求:讀取Excel檔案、替換文字檔案中得指定某個字串並生成新的檔案 原始碼: #encoding:utf-8 # -*- coding: utf-8 -*- #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author:

怎麼利用PHP讀取Excel檔案資訊及內容

  PHPExcel是什麼?PHPExcel 就是一個用來操作Office Excel 文件的PHP類庫。在程式設計技術開發中,我們經常要從程式中讀取Excel檔案內容,不過很多初學者都不太會,那麼下面來詳細為大家分析解答一下吧。比如說一個普通的個人資訊表,我們利用PHPExcel類庫將Excel表格內的資訊

java讀取excel檔案內容,並將讀取到的內容寫入到另一檔案

需要匯入的jar包下載地址https://pan.baidu.com/s/16cTpUfx0KvKkbGYkXAUKMA 程式碼:ReadExcel.java //信1605-3 20163432 張運濤 package domain; import java.io.File; im

Java 讀取Excel 檔案內容

在一個專案中,有一個需求,是把excel檔案的內容轉換為xml格式展示。在學習如何操作的過程中,首先是如何獲取excel檔案,其中操作的程式碼如下: 1.首先是匯入需要的 jar, 下載地址: 2.程式碼實現: package com.apusic; import org.apache.po