У меня есть HTML-страница с некоторыми графиками на ней. То, что я хочу сделать, это написать функцию загрузки javascript, которая будет считывать значения из листа excel, хранить их в переменных и использовать их на странице html. Мой вопрос в том, есть ли какие-либо javascript API, которые обрабатывают листы excel, как в значениях parse из ячеек листа excel?Javascript Excel Sheet
1
A
ответ
2
Я написал XLSX анализатор в JavaScript. https://gist.github.com/trevordixon/3375836
/*
Relies on jQuery, underscore.js, Async.js (https://github.com/caolan/async), and zip.js (http://gildas-lormeau.github.com/zip.js).
Tested only in Chrome on OS X.
Call xlsxParser.parse(file) where file is an instance of File. For example (untested):
document.ondrop = function(e) {
var file = e.dataTransfer.files[0];
excelParser.parse(file).then(function(data) {
console.log(data);
}, function(err) {
console.log('error', err);
});
}
*/
xlsxParser = (function() {
function extractFiles(file) {
var deferred = $.Deferred();
zip.createReader(new zip.BlobReader(file), function(reader) {
reader.getEntries(function(entries) {
async.reduce(entries, {}, function(memo, entry, done) {
var files = ['xl/worksheets/sheet1.xml', 'xl/sharedStrings.xml'];
if (files.indexOf(entry.filename) == -1) return done(null, memo);
entry.getData(new zip.TextWriter(), function(data) {
memo[entry.filename.split('/').pop()] = data;
done(null, memo);
});
}, function(err, files) {
if (err) deferred.reject(err);
else deferred.resolve(files);
});
});
}, function(error) { deferred.reject(error); });
return deferred.promise();
}
function extractData(files) {
var sheet = $(files['sheet1.xml']),
strings = $(files['sharedStrings.xml']),
data = [];
var colToInt = function(col) {
var letters = ["", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var col = $.trim(col).split('');
var n = 0;
for (var i = 0; i < col.length; i++) {
n *= 26;
n += letters.indexOf(col[i]);
}
return n;
};
var Cell = function(cell) {
cell = cell.split(/([0-9]+)/);
this.row = parseInt(cell[1]);
this.column = colToInt(cell[0]);
};
var d = sheet.find('dimension').attr('ref').split(':');
d = _.map(d, function(v) { return new Cell(v); });
var cols = d[1].column - d[0].column + 1,
rows = d[1].row - d[0].row + 1;
_(rows).times(function() {
var _row = [];
_(cols).times(function() { _row.push(''); });
data.push(_row);
});
sheet.find('sheetData row c').each(function(i, c) {
var $cell = $(c),
cell = new Cell($cell.attr('r')),
type = $cell.attr('t'),
value = $cell.find('v').text();
if (type == 's') value = strings.find('si t').eq(parseInt(value)).text();
data[cell.row - d[0].row][cell.column - d[0].column] = value;
});
return data;
}
return {
parse: function(file) {
return extractFiles(file).pipe(function(files) {
return extractData(files);
});
}
}
})();
1
Вы можете попробовать использовать ActiveXObject для чтения данных из excel. Существуют различные методы утилиты.
Проверьте эту ссылку.
http://www.roseindia.net/javascript/javascriptexamples/javascript-get-excel-file-data.shtml
+0
да, но activeX может использоваться только для IE правильно? Я хочу что-то в Safari –
Смежные вопросы
- 1. Unprotect excel sheet
- 2. фильтр excel sheet
- 3. Excel master sheet
- 4. Добавление Excel Sheet Формула
- 5. Google Sheet Sheet Sheet
- 6. Exellent Export excel sheet border
- 7. excel sheet загрузить в mongo
- 8. Pandas Dataframe to excel sheet
- 9. Сформировать Excel Sheet В CodeIgniter
- 10. import excel sheet in winform
- 11. export gridview to excel sheet
- 12. Access - Связанный запрос Excel Sheet
- 13. Fetch rate form excel sheet
- 14. JavaScript Cheat Sheet
- 15. Javascript multi animation sheet
- 16. Javascript Code Simplification Cheat Sheet
- 17. COPY TO excel Sheet in foxpro
- 18. Чтение данных из Excel First Sheet - C#
- 19. Запись данных на Open excel sheet
- 20. Excel Cross Sheet INDEX/MATCH несоответствия
- 21. Excel-косвенная функция (Increment the sheet reference)
- 22. Удалить строку из jxl excel sheet
- 23. Excel Sheet - как добавить условие в VLookUp
- 24. Регистрация с SQL таблицы в Excel Sheet
- 25. Linq Update excel sheet from Any
- 26. Open excel sheet от JButton - Java Swing
- 27. Apache POI> Невозможно читать Excel Sheet
- 28. Запись данных в excel sheet java
- 29. Auto Increment Reference of Sheet EXCEL
- 30. Как ввести матрицу Excel Sheet в R
Все вопросы здесь. 1. Вы знаете, что не можете получить файл на локальной машине пользователя, чтобы загрузить их на сервер? 2. Многое зависит от того, является ли это xls или xlsx ... –
И странная идея! Почему вы не загружаете электронную таблицу на сервер и не читаете ее с приличной библиотекой, поддерживаемой вашим серверным языком? – Philippe
Почему бы вам не «сохранить как: xml», а затем проанализировать данные, чтобы получить нужную вам информацию. –