Javascript umn名称以AA,AB开头。。。由于这些行var col=z.substring(0,1)和var行=parseInt(z.substring(1))。将它改为 const列=Z.Read(/[09] /g,'')/ const行= PARSETIN(Z.
Javascript umn名称以AA,AB开头。。。由于这些行var col=z.substring(0,1)和var行=parseInt(z.substring(1))。将它改为 const列=Z.Read(/[09] /g,'')/ const行= PARSETIN(Z.,javascript,json,node.js,excel,xlsx,Javascript,Json,Node.js,Excel,Xlsx,umn名称以AA,AB开头。。。由于这些行var col=z.substring(0,1)和var行=parseInt(z.substring(1))。将它改为 const列=Z.Read(/[09] /g,'')/ const行= PARSETIN(Z.Read(/\D/G,''))< /代码>,现在它工作得很好。但是,它跳过了表中的空白单元格,这些空白单元格应该是空的或“对我来说这样”,例如:k列的标题是“权重”,k1的值为72,所以它返回的值为权重:'72',k3的值为65,所以权重:'6
umn名称以
AA
,AB
开头。。。由于这些行var col=z.substring(0,1)代码>和var行=parseInt(z.substring(1))代码>。将它改为<代码> const列=Z.Read(/[09] /g,'')/<代码> const行= PARSETIN(Z.Read(/\D/G,''))< /代码>,现在它工作得很好。但是,它跳过了表中的空白单元格,这些空白单元格应该是空的或“对我来说这样”,例如:k列的标题是“权重”,k1的值为72,所以它返回的值为权重:'72',k3的值为65,所以权重:'65',但k2单元格留空,所以它没有返回任何内容,我想要权重:''或权重:null,如果我得到任何解决方案,这将是我的巨大解脱,请帮助我解决这个问题,许多感谢者不会返回空值,这意味着如果值为emptyYeah,它不会添加到json中,默认情况下它不会处理空白单元格,但通过将可选参数传递给XLSX.readFile函数是一种解决方法。var workbook=XLSX.readFile('Master.XLSX',{sheetStubs:true});可选对象中的sheetStubs参数允许库列出默认情况下被库的数据处理实用程序忽略的单元格。请注意,它应该是XLSX.utils.sheet_to_json(sheet,{deffal:})
而不是XLSX.utils.sheet_to_json(sheet,{deffal=”“})
伙计,我希望两年过去后,你不要再调用变量y
,z
,tt
,更新你的代码是一件非常痛苦的事,这里到底发生了什么?什么是z?什么是tt?@StormMuller看到我的答案了吗?它有角度解,变量的正常命名,但如何工作?在变量命名方面,如果需要更改某些内容,则必须对过程进行反向工程。。下面的答案具有相同的代码和更好的命名。欢迎使用Stackoverflow!:D如果你评论你的代码或在你的正文中添加一些内容来澄清你的答案,这将使你的答案更好、更容易理解。
[
{
"id": 1,
"Headline": "Team: Sally Pearson",
"Location": "Austrailia",
"BodyText": "...",
"Media: "..."
},
{
"id": 2,
"Headline": "Team: Rebeca Andrade",
"Location": "Brazil",
"BodyText": "...",
"Media: "..."
}
]
if(typeof require !== 'undefined') {
console.log('hey');
XLSX = require('xlsx');
}
var workbook = XLSX.readFile('./assets/visa.xlsx');
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) { /* iterate through sheets */
var worksheet = workbook.Sheets[y];
for (z in worksheet) {
/* all keys that do not begin with "!" correspond to cell addresses */
if(z[0] === '!') continue;
// console.log(y + "!" + z + "=" + JSON.stringify(worksheet[z].v));
}
});
XLSX.writeFile(workbook, 'out.xlsx');
var XLSX = require('xlsx');
var workbook = XLSX.readFile('test.xlsx');
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) {
var worksheet = workbook.Sheets[y];
var headers = {};
var data = [];
for(z in worksheet) {
if(z[0] === '!') continue;
//parse out the column, row, and value
var col = z.substring(0,1);
var row = parseInt(z.substring(1));
var value = worksheet[z].v;
//store header names
if(row == 1) {
headers[col] = value;
continue;
}
if(!data[row]) data[row]={};
data[row][headers[col]] = value;
}
//drop those first two rows which are empty
data.shift();
data.shift();
console.log(data);
});
[ { id: 1,
headline: 'team: sally pearson',
location: 'Australia',
'body text': 'majority have…',
media: 'http://www.youtube.com/foo' },
{ id: 2,
headline: 'Team: rebecca',
location: 'Brazil',
'body text': 'it is a long established…',
media: 'http://s2.image.foo/' } ]
var XLSX = require('xlsx');
var workbook = XLSX.readFile('test.xlsx');
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) {
var worksheet = workbook.Sheets[y];
var headers = {};
var data = [];
for(z in worksheet) {
if(z[0] === '!') continue;
//parse out the column, row, and value
var tt = 0;
for (var i = 0; i < z.length; i++) {
if (!isNaN(z[i])) {
tt = i;
break;
}
};
var col = z.substring(0,tt);
var row = parseInt(z.substring(tt));
var value = worksheet[z].v;
//store header names
if(row == 1 && value) {
headers[col] = value;
continue;
}
if(!data[row]) data[row]={};
data[row][headers[col]] = value;
}
//drop those first two rows which are empty
data.shift();
data.shift();
console.log(data);
});
var XLSX = require('xlsx');
var workbook = XLSX.readFile('Master.xlsx');
var sheet_name_list = workbook.SheetNames;
console.log(XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]))
parseXlsx() {
let self = this;
return Observable.create(observer => {
this.http.get('./assets/input.xlsx', { responseType: 'arraybuffer' }).subscribe((data: ArrayBuffer) => {
const XLSX = require('xlsx');
let file = new Uint8Array(data);
let workbook = XLSX.read(file, { type: 'array' });
let sheetNamesList = workbook.SheetNames;
let allLists = {};
sheetNamesList.forEach(function (sheetName) {
let worksheet = workbook.Sheets[sheetName];
let currentWorksheetHeaders: object = {};
let data: Array<any> = [];
for (let cellName in worksheet) {//cellNames example: !ref,!margins,A1,B1,C1
//skipping serviceCells !margins,!ref
if (cellName[0] === '!') {
continue
};
//parse colName, rowNumber, and getting cellValue
let numberPosition = self.getCellNumberPosition(cellName);
let colName = cellName.substring(0, numberPosition);
let rowNumber = parseInt(cellName.substring(numberPosition));
let cellValue = worksheet[cellName].w;// .w is XLSX property of parsed worksheet
//treating '-' cells as empty on Spot Indices worksheet
if (cellValue.trim() == "-") {
continue;
}
//storing header column names
if (rowNumber == 1 && cellValue) {
currentWorksheetHeaders[colName] = typeof (cellValue) == "string" ? cellValue.toCamelCase() : cellValue;
continue;
}
//creating empty object placeholder to store current row
if (!data[rowNumber]) {
data[rowNumber] = {}
};
//if header is date - for spot indices headers are dates
data[rowNumber][currentWorksheetHeaders[colName]] = cellValue;
}
//dropping first two empty rows
data.shift();
data.shift();
allLists[sheetName.toCamelCase()] = data;
});
this.parsed = allLists;
observer.next(allLists);
observer.complete();
})
});
}
function genrateJSONEngine() {
var XLSX = require('xlsx');
var workbook = XLSX.readFile('test.xlsx');
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function (y) {
var array = workbook.Sheets[y];
var first = array[0].join()
var headers = first.split(',');
var jsonData = [];
for (var i = 1, length = array.length; i < length; i++) {
var myRow = array[i].join();
var row = myRow.split(',');
var data = {};
for (var x = 0; x < row.length; x++) {
data[headers[x]] = row[x];
}
jsonData.push(data);
}
**podria ser algo asi en react y electron**
xslToJson = workbook => {
//var data = [];
var sheet_name_list = workbook.SheetNames[0];
return XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list], {
raw: false,
dateNF: "DD-MMM-YYYY",
header:1,
defval: ""
});
};
handleFile = (file /*:File*/) => {
/* Boilerplate to set up FileReader */
const reader = new FileReader();
const rABS = !!reader.readAsBinaryString;
reader.onload = e => {
/* Parse data */
const bstr = e.target.result;
const wb = XLSX.read(bstr, { type: rABS ? "binary" : "array" });
/* Get first worksheet */
let arr = this.xslToJson(wb);
console.log("arr ", arr)
var dataNueva = []
arr.forEach(data => {
console.log("data renaes ", data)
})
// this.setState({ DataEESSsend: dataNueva })
console.log("dataNueva ", dataNueva)
};
if (rABS) reader.readAsBinaryString(file);
else reader.readAsArrayBuffer(file);
};
handleChange = e => {
const files = e.target.files;
if (files && files[0]) {
this.handleFile(files[0]);
}
};