Как очистить область ячеек? Как определить что ячейка Excel пустая?
Delphi:
ASheet.Range['A1', EmptyParam].Formula := 123.45; ASheet.Range['A2', EmptyParam].Formula := 0;
// проверяем
ASheet.Range['B1', EmptyParam].Formula := VarIsClear(ASheet.Range['A1', EmptyParam].Value2); ASheet.Range['B2', EmptyParam].Formula := VarIsClear(ASheet.Range['A2', EmptyParam].Value2); ASheet.Range['B3', EmptyParam].Formula := VarIsClear(ASheet.Range['A3', EmptyParam].Value2);
// Записали в ячейку информацию и проверяем, что вернет нам функция VarIsClear
// Запишем в A3 пустой текст, а в A1 очистим форматы
ASheet.Range['A1', EmptyParam].ClearFormats; ASheet.Range['A3', EmptyParam].Formula := '';
// проверим
ASheet.Range['B1', EmptyParam].Formula := VarIsEmpty(ASheet.Range['A1', EmptyParam].Value2); ASheet.Range['B2', EmptyParam].Formula := VarIsEmpty(ASheet.Range['A2', EmptyParam].Value2); ASheet.Range['B3', EmptyParam].Formula := VarIsEmpty(ASheet.Range['A3', EmptyParam].Value2);
// После записи пустой строки ячейка так и осталась "пустой"
// Очистим содержание всех ячеек и посмотрим, что получилось
ASheet.UsedRange[lcid].ClearContents; ASheet.Range['B1', EmptyParam].Formula := VarIsEmpty(ASheet.Range['A1', EmptyParam].Value2); ASheet.Range['B2', EmptyParam].Formula := VarIsEmpty(ASheet.Range['A2', EmptyParam].Value2); ASheet.Range['B3', EmptyParam].Formula := VarIsEmpty(ASheet.Range['A3', EmptyParam].Value2);
// Видно, что теперь все ячейки "пустые" (нет данных).
Чтобы радикально очистить ячейки (данные, форматы, примечания и т.д.), можно вызвать метод Clear.
Clear Method
ClearContents Method
ClearFormats Method