Загрузка excel в виде csv или потока данных
Привет,
Часть моего приложения включала загрузку данных через веб-портал. Листы могут быть в любом формате электронной таблицы.
Мое приложение использует предопределенные "плагины" для перевода этих таблиц данных в плоский формат, которым легче манипулировать в нашей структуре данных.
Некоторые из этих файлов могут быть огромными (ну, много Мб), что занимает несколько минут для загрузки в зависимости от скорости загрузки. Некоторые файлы (в частности, один) также занимают много времени, чтобы сгладить.
Я хотел бы начать обработку файла, прочитав поток, как только они начнут загружаться.
Это прекрасно работает для csv, но файлы xls и xlsx не могут быть обработаны до тех пор, пока файл не будет полностью загружен, открыт и преобразован в стандартный объект [] [], готовый к выравниванию.
Итак, мой вопрос: есть ли какой-нибудь способ обработать файл на клиентской машине с помощью клиентского кода? Мне нужно было бы открыть файл и сохранить один или несколько листов в формате csv, а затем загрузить их.
Возможно ли это? Может быть, я смогу создать плагин для chrome? Я бы предпочел ничего не устанавливать.
Извините, если это звучит немного нелепо, но я знаю, что отстаю от времени в области технологий, поэтому я надеялся, что есть какой-то способ.
Спасибо
Энди ^_^
Что я уже пробовал:
Я покажу вам свой код потока загрузки:
var file = context.Request.Files[i]; byte[] input = new byte[file.ContentLength]; var stream = file.InputStream; stream.Read(input, 0, file.ContentLength); if (!importedFiles.ContainsKey(file.FileName)) importedFiles.Add(file.FileName,null); importedFiles[file.FileName] = new FileImportWizardItem { Name = file.FileName, Size = file.ContentLength, DateTime = DateTime.Now, File = input }; //update the client RateTicker.NotifyFileImported(context, file.FileName, file.ContentLength); ConvertFile(context, supplierId, importedFiles[file.FileName]);
Nelek
Я не могу дать вам ответ, но хочу сказать вам спасибо: вы задаете достойный вопрос :) (жаль, что это так спорадично видеть такое)
Mehdi Gholam
CSV-файлы несжаты, а XLSX-файлы более компактны для одних и тех же данных, так что это было бы не очень хорошей идеей.
Кроме того, даже если бы вы могли начать с клиента , как насчет сбоев соединения и повторных попыток..., что усложнило бы вашу работу.
Andy Lanng
CSV не сжимается, но это позволяет начать обработку их во время загрузки, а не после.
Я знаю, что это сделало бы мою работу сложнее, но требования редко существуют, чтобы сделать мою работу проще :Þ