Andy Lanng Ответов: 0

Загрузка 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 не сжимается, но это позволяет начать обработку их во время загрузки, а не после.

Я знаю, что это сделало бы мою работу сложнее, но требования редко существуют, чтобы сделать мою работу проще :Þ

0 Ответов