导航:首页 > 文件类型 > js重组Excel文件

js重组Excel文件

发布时间:2024-08-23 10:56:41

A. js 或php把excel 文件转换成html

JS 和 PHP 两种语言都能实现,主要是看LZ对何种语言熟练。
JS实现Excel转换功能,一般会用到ActiveX技术来操作Excel文件,这样的好处就是无需了解Excel本身的文件数据格式,通过ActiveX对象来实现Excel内容的解析(据我所知,微软没有公布Excel文件格式),比较方便,JS调用ActiveX对象的方法,网络有现成的方法。
其次是PHP语言,PHP和JS都为脚本语言,所以PHP也可以使用和JS相同的方法来实现。另外值得欣慰的时,PHP有免费开源的Office文档操作库,LZ可以在网络上找到,在自己的PHP中直接Include过来就能使用。
希望有所帮助,谢谢!
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2");

B. 怎么使用github的js-xlsx库进行excel文件处理

JS-XLS
JS-XLS的安装是很简单的,在浏览器中使用该脚本文件,并使用脚本标记加载它:
<!-- https://github.com/SheetJS/js-xls/blob/master/xls.js -->
<script src="/path/to/xls.js"></script>

对于Node.js,只要通过NPM安装:
$ npm install xlsjs
$ node
> require('xlsjs').readFile('excel_file.xls');

然后,我们可以简单地使用他们提供的代码在他们的index.html文件解析和转换的xls文件JSON,CSV或公式为基础的输出。
function get_radio_value( radioName ) {
var radios = document.getElementsByName( radioName );
for( var i = 0; i < radios.length; i++ ) {
if( radios[i].checked ) {
return radios[i].value;
}
}
}

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 to_csv(workbook) {
var result = [];
workbook.SheetNames.forEach(function(sheetName) {
var csv = XLS.utils.make_csv(workbook.Sheets[sheetName]);
if(csv.length > 0){
result.push("SHEET: " + sheetName);
result.push("");
result.push(csv);
}
});
return result.join("\n");
}

function to_formulae(workbook) {
var result = [];
workbook.SheetNames.forEach(function(sheetName) {
var formulae = XLS.utils.get_formulae(workbook.Sheets[sheetName]);
if(formulae.length > 0){
result.push("SHEET: " + sheetName);
result.push("");
result.push(formulae.join("\n"));
}
});
return result.join("\n");
}

var tarea = document.getElementById('b64data');
function b64it() {
var cfb = XLS.CFB.read(tarea.value, {type: 'base64'});
var wb = XLS.parse_xlscfb(cfb);
process_wb(wb);
}

function process_wb(wb) {
var output = "";
switch(get_radio_value("format")) {
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;
}

var drop = document.getElementById('drop');
function handleDrop(e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
var i,f;
for (i = 0, f = files[i]; i != files.length; ++i) {
var reader = new FileReader();
var name = f.name;
reader.onload = function(e) {
var data = e.target.result;
var cfb = XLS.CFB.read(data, {type: 'binary'});
//var arr = String.fromCharCode.apply(null, new Uint8Array(data));
//var cfb = XLS.CFB.read(btoa(arr), {type: 'base64'});
var wb = XLS.parse_xlscfb(cfb);
process_wb(wb);
};
reader.readAsBinaryString(f);
//reader.readAsArrayBuffer(f);
}
}

function handleDragover(e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = '';
}

if(drop.addEventListener) {
drop.addEventListener('dragenter', handleDragover, false);
drop.addEventListener('dragover', handleDragover, false);
drop.addEventListener('drop', handleDrop, false);
}

JS代码很容易理解,它使用了HTML5拖放API允许我们上传文件然后看他们为二进制字符串。二进制,然后直接传递到库,并进一步分析使用此代码:
var cfb = XLS.CFB.read(data, {type: 'binary'});
var wb = XLS.parse_xlscfb(cfb);

最终,WB(Workbook)对象是处理并转换成需要的格式(JSON,CSV和Excel公式)。这没有HTML5拖放文件阅读器的API,可用于Node.js代码相同。
注:此模块不支持xlsx。为了克服这一限制,我们可以通过同一作者称为JS-XLSX用另一个包。

阅读全文

与js重组Excel文件相关的资料

热点内容
u盘文件都是只读模式 浏览:71
侠盗猎车手罪恶都市动作文件 浏览:526
iphone6plus升级93 浏览:913
苹果6P摔了一下就出现黑屏了 浏览:743
选取如何将app和数据传输至这台手机 浏览:274
编程侠的课怎么样 浏览:150
建行app怎么设置经典模式 浏览:771
linux修改文件夹下的文件日期 浏览:383
快读更新后什么版本 浏览:375
360临时文件夹无写入权限 浏览:546
米兔手表网络连接成功怎么关闭 浏览:382
常见的磁盘文件系统有哪两种 浏览:286
缓存错误代码8157 浏览:634
卷积神经网络人脸识别 浏览:503
根据文件相关内容 浏览:623
华为手机误删文件 浏览:273
数据库逆规范化 浏览:234
类似广点通的app有哪些 浏览:685
苹果5v数据线哪个好 浏览:182
文件名vob改成mp3电视能播 浏览:975

友情链接