Извлечение местоположения строки в листе Excel, используя читабельный - PullRequest
0 голосов
/ 10 марта 2020

Я пишу программу, которая будет использовать readtable для управления данными, считываемыми из электронной таблицы Excel, например, приведенной ниже:

   A   B   C   D   E   F...
1  "   "   "   "   "   "
2  "   S   3   K3  "   "
3  "   "   "   "   "   "
4  "   "   10  3C  "   "
5  "   G   7   U   "   "
6  "   "   "   "   "   "
.
.
.

Я должен извлечь исходное местоположение некоторых данных То есть мне нужно хранить местоположение 'S' как 'B2' и 'K3' как 'D2' et c. после того, как они прочитаны из электронной таблицы. Для этого я использую readtable и затем ищу место в электронной таблице, которая содержит желаемую строку; однако для этого требуется, чтобы вся таблица была загружена в MATLAB.

Я не знаю заранее количество пустых строк или столбцов до 'S', а также не знаю, будут ли заполнены какие-либо данные в каком-либо столбцов в строках над ним. Кроме того, я не хочу, чтобы имена переменных генерировались автоматически.

readtable('FilePath', 'ReadVariableNames', false, 'Range', 'myrange')

позволяет не читать имена переменных, но не допускает динамический диапазон c, т. Е. Опция по умолчанию пропускает пустое пространство, а указанный диапазон может ' t быть динамическим c.

opts=detectImportOptions('FilePath'); 
opts.DataRange='A1'
readtable('FilePath', opts, 'ReadVariableNames', false)

позволяет указать начало диапазона, но opts=detectImportOptions перезаписывает параметр 'ReadVariableNames', и программа все равно считывает имена переменных. Единственный обходной путь, который я нашел, состоял в том, чтобы использовать readtable без opts и указать диапазон, больший, чем самый большой ожидаемый набор данных, а затем обрезать пустые строки и столбцы, но это медленно и неуклюже. Есть ли обходной путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...