Я не буду оскорблять настоящих программистов здесь, называя себя программистом; В лучшем случае я любитель. Теперь перед проблемой:visual basic 2010 windows form application читать значения файла excel в массиве
Я пишу программу, которая позволит пользователям в аварийном оперативном центре быстро входить в систему и обрабатывать радиопередачу и другие данные. Это программное обеспечение не будет обрабатывать конфиденциальную информацию, поэтому конфиденциальность данных не вызывает беспокойства. Однако целостность и надежность. Будет несколько экземпляров, где эта программа должна читать из некоторого источника данных, который может быть отредактирован вне программы, и файл просто скопируется на место при создании обновлений (я обработаю эту часть). Мы выбрали Excel, поскольку он выложен в таблице изначально, а файлы xlsx легко поддерживаются программным обеспечением практически на каждой платформе.
Что я хочу сделать, так это: Когда откроется основная форма, я хочу, чтобы она вызывала публичный элемент в Module1
(так как другим формам может понадобиться использовать этот суб), а также открыть файл Facilities.xlsx
как только для чтения. Есть два столбца: A содержит тип объекта (больница, EOC, полевое командование), а B содержит название объекта (Мемориал Гринвилл, EOC округа Спартанбург) и т. Д. Количество строк будет изменяться по мере добавления и удаления объектов, однако я буду обрабатывать распространение обновлений. Другой файл excel, Personnel.xlsx
, будет содержать больше столбцов и снова неизвестное количество строк.
Что мне нужно сделать: A) Определите размер заполняемого массива, включая количество необходимых размеров, так как это изменится с количеством столбцов и строк и B) прочитает данные в массиве для дальнейшая обработка структурами решений или возможная запись в другой файл excel для других целей. Со всеми намерениями и целями массив должен быть As String, поскольку все значения, с которыми я буду иметь дело, будут строками.
Я нашел десятки примеров, многие из которых работают с фиксированным диапазоном (A1: B38) и аналогичным, и другие, которые используют ADO или даже тот, который каким-то образом приносит SQL в этот микс, и другие, которые настолько неполны I даже не могут определить, как они вписываются в другие примеры. Этот код должен быть небольшим, простым и легким, и ему просто нужно прочитать данные из файла в массив. Все данные будут строками, поэтому нет никаких причудливых вычислений или других проблем.
Как прямо сейчас у меня есть библиотека +12,0 объектов Microsoft Excel и 12.0 библиотеку объектов Microsoft Office (я предполагаю, что Управление увязался с Excel) COM ссылки, и в Module1 у меня есть:
Imports Excel = Microsoft.Office.Interop.Excel
чтобы облегчить ссылки на пространство имен.
На сегодняшний день я пробовал более десятка различных примеров и имел некоторые сбои во время выполнения, некоторые сбои в чтении любых данных, а некоторые - ошибки, которые не позволяли строить. Я в недоумении и приближаюсь к отказу от Excel в других источниках, которые менее надежны. Мне действительно нужна помощь с этим. Если есть кодовый индикатор, ресурсосберегающее решение, пожалуйста, помогите мне.
Спасибо за другим углом смотреть на это. Две вещи, которые мне нужно учитывать: Являются ли библиотеки OpenXML легче на ресурсах, и они легче в коде? Я потянул ссылки, которые вы предоставили, и я буду комментировать мой текущий код и попробовать некоторые из этих примеров.Я все еще имею и, вероятно, по-прежнему буду нуждаться в помощи, имея дело с массивами. Во-первых, получение данных в массивах строк, во-вторых, возможность использования одного измерения в качестве условия для извлечения строк во втором измерении в двух столбцах, переменных строк (около 40) двухмерного массива. –
Я искал это решение, но я не думаю, что это сработает для меня. MSDN говорит, что библиотеки openxml - 2013 или более поздние, и я не так уж далеко. Я использую визуальную студию 2010 и офис 2007, поэтому не стоит набирать обороты. Могу ли я получить этот sdk отдельно или мне нужно вернуться в Interop? –
Я использовал OpenXml 2.5 с Visual Studio 2010. Формат файла xslx такой же для офиса 2007/2010/2013. Я думаю, что вы можете использовать его – bdn02