В настоящее время я работаю над проектом для перемещения документа excel и вставки данных в базу данных с использованием C#.C#: чтение данных из документа xls
Соответствующие данные для этого проекта:
- Листа Excel имеет 14 строк в верхней части, что я не забочусь о. (Иногда 15 см Россия/Сибирь ниже)
- Данные сгруппированы по названию в 2 колонки (дата и стоимость), таких как:
Лист 1
USA China Russia
Date Value Date Value Siberia
1/1/09 4.3654 1/1/09 2.7456 Date Value
1/2/09 3.5545 1/3/09 9.3214 2/5/09 0.2454
1/3/09 3.2322 1/21/09 5.2234 2/6/09 0.5557
- Наименование Мне нужно приобрести то, что указано прямо над «Датой».
- Мне больше всего нужны данные из дат, которых у нас нет в базе данных. Перед анализом каждого столбца я получаю максимальную дату для любого имени из базы данных и пропускаю все, что угодно или до него.
- Нет гарантий, что столбцы будут в постоянном порядке или иметь постоянный интервал.
- Мне не нужны данные для всех имен, а только те из списка, которые я собрал, прежде чем файл будет приобретен.
Мой текущий план таков:
- Для каждого столбца, если поле даты в строке 16, сохранить имя в качестве значения в строке 15 выше него, проверить базу данных на последнюю дату для этого имени введите только данные, в которых дата больше, чем полученная дата.
- Если поле даты находится в строке 17, выполните то же самое, но запустите цикл for через каждую строку в 18.
- Если имя отсутствует в списке, пропустите столбец. Если это так, не забудьте взять рядом с ним столбец для необходимых значений.
Моя проблема:
- В настоящее время я пытаюсь использовать ExcelDataReader из Codeplex (http://www.codeplex.com/ExcelDataReader). Это нравится только csv-подобным листам, которых нет в этом проекте.
- Я не знаю никаких альтернативных читателей Excel.
- Насколько я знаю, прямой обход FileStream этого файла может идти только по строкам, а не по столбцу.
Для всех, кто все еще читает, спасибо за ваше время. Любые рекомендации о том, как действовать? Убедитесь, что решения могут проходить через каждый столбец, а не каждую строку.
Кроме того, не беспокойтесь о материале базы данных или списке имен, предшествующих обходу.
Приложение: Что бы я хотел сделать в итоге - это какой-то тип таблицы, в которой я могу просто пересекаться с вложенным циклом, что значительно упрощает обход столбцов. Поскольку в верхней части листа имеется слишком много мусора (более 14 строк), большинство простых решений невозможно.
Я с нетерпением жду попыток koogra и nexcel. Я дам вам знать, как они работают для меня. –
Я использую koogra более года в производственной системе, ежедневно разбирающей полдюжины файлов excel, это действительно работает очень хорошо, однако его документация отсутствует. Свяжитесь с нами, если вы застряли с ним. – Chris
+1 Крис, POI через IKVM не такой неразумный вариант, как он появляется впервые. Это очень надежная библиотека. –