Как понять что ячейка пустая (xlsreadwriteii 5)?

RAD Studio 10.1 Berlin.
Работаю с excel - xlsx. Компонент xlsreadwriteii 5.
Все данные считываются, но возникла проблема. xlsreadwriteii 5 не может определить пустую ячейку.
При задании условия. Например - если в ячейке текст 1, делай одно, а если пустая - делай другое.
Excel - Формат ячеек общий. Числа сохранены как текст.
Так вот текст 1 он (xlsreadwriteii 5) находит, а пустые ячейки нет.

XLS:=TXLSReadWriteII5.Create(nil);
XLS.Filename:=ExtractFilePath(Application.ExeName)+'file.xlsx';
XLS.Read;
XLS[0].CalcDimensions;
//Еще код.....
//Читаем содержимое ячейки в переменную
NUMBER:=XLS[0].AsString[NUMBER_column,row];
//Узнаем длину строки
Form1.Memo1.lines.add('Длина строки NUMBER='+inttostr(Length(NUMBER)));
if (NUMBER='') then Form1.Memo1.lines.add('Пусто');
if (NUMBER='1')   then Form1.Memo1.lines.add('Единица');


Если 1 будет Единица. Тут всё понятно.
Если пустая ячейка, то ничего не будет выведено. Не "ловит." (
Узнаю длину строки с пустой ячейкой. Длина строки 1. Т.е. ячейка пустая, а длина строки 1!
Такое поведение программы, без изменения excel файла.

Давайте теперь изменим excel файл.
Открываю excel файл. Руками изменяю ячейку с пустой на 1. Сохраняю.
Программа "видит" 1. Что очевидно.
Но теперь программа видит и все пустые ячейки в этом ряду.
Я изменил одну, и это как то повлияло на "видимость" всех пустых ячеек ниже.
Т.е. теперь программа работает корректно. Но я не менял формат ячеек. Смотрю ещё раз - Формат ячеек общий. Числа сохранены как текст.

Руками снова изменяю ячейку с 1 на пустую. Сохраняю.
Программа "видит" и определяет пустую ячейку (и все ниже, разумеется). Длина строки 0. Все как и должно быть.

Итого.
Без ручного открытия excel файла программа ( xlsreadwriteii 5) не определяет пустые ячейки.
С открытием excel файла руками и любым изменением ячейки и сохранением файла, программа определяет все пустые ячейки.

Такая ситуация возникает с xlsreadwriteii 5. С OLE Excel такого не замечал.

Как понять что ячейка пустая (xlsreadwriteii 5)?
Почему происходит такой глюк?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
@kalapanga
Так посмотрите, что у Вас в NUMBER после того, как пустую ячейку прочитали. Там скорее всего окажется какой-нибудь LF или может TAB.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Посмотреть в исходных файлах TXLSReadWriteII5 как читается ячейка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы