2016-04-24 2 views
2

Я использую библиотеку EPPlus .NET (v4.0.4) для интерпретации сохраненных книг Excel. В одном из таких листов некоторые пустые ячейки были настроены на «текстовый» формат, используя трюк «апострофа» Excel (то есть пользователь ввел один и тот же апостроф в этих ячейках, так что Excel отобразит их как пустые).Может ли EPPlus различать пустые ячейки и пустые текстовые ячейки на листе Excel?

Пример XML для двух таких клеток следующим образом:

<c r="F6" s="1" t="inlineStr"> 
    <is> 
     <t /> 
    </is> 
    </c> 
    <c r="G6" s="1" /> 

Здесь F6 имеет апостроф (т.е. является пустой текст ячейки) и G6 является действительно пустой.

Возможно ли прочитать эту «встроенную строку» (inlineStr) с использованием EPPlus или иным образом различать эти две ячейки? Классы ExcelRange/ExcelRangeBase имеют такие свойства, как Value, Formula, Style и т. Д., Но при исследовании объектов, представляющих две ячейки выше, я не вижу никакой разницы между ними.

Я знаю, что могу сделать это вручную, читая исходный XML или используя альтернативную библиотеку (возможно, ClosedXML или аналогичную), но если это вообще возможно, я хотел бы сделать это с помощью EPPlus.

ответ

2

EPPlus использует значение null для представления пустой ячейки и возвращает пустую строку для ячейки, содержащей пустую строку.

Это относится как к операциям чтения, так и записи.

Итак, если вы пишете пустую строку в ячейку с использованием epplus, то эта ячейка будет содержать пустую строку (так будет отображаться пустой, но не будет равна 0), тогда как если вы установите значение ячейки равным null, используя epplus, тогда это будет быть пустым в excel (и все равно будет выглядеть пустым, но будет равен 0)

То же самое относится к операциям чтения. Вы можете прочитать пустую строку из значения ячейки, если вы использовали «apostrophe trick», но получите нулевую ссылку для значения пустой ячейки.

+0

Спасибо @Stewart_R, не уверен, как я пропустил это. –