Gembox - получить адрес ExcelCell - PullRequest
       9

Gembox - получить адрес ExcelCell

2 голосов
/ 03 августа 2011

Мы оцениваем Gembox как замену Aspose. Я думаю, что ослеп, потому что одна вещь, которую я не могу сделать, это легко получить адрес (например, «B4») ExcelCell.

Например, при итерации по ячейкам мы можем столкнуться с неожиданным значением и хотели бы сообщить пользователю, где произошла ошибка.

var dodgyCell = sheet.Cells[rowIndex, colIndex];

Лучший обходной путь, который я нашел, если создать CellRange из одной ячейки, а затем использовать начальную позицию. i.e.:

var cr = sheet.Cells.GetSubrangeAbsolute(rowIndex, colIndex, rowIndex, colIndex);
var message = "Dodgy value was found in cell " + cr.StartPosition

Неужели должен быть более легкий путь?

Приветствия

Ответы [ 3 ]

5 голосов
/ 07 декабря 2011

Кажется, что Original Poster выяснил ответ. К сожалению, это не очень хорошо видно, так что вот снова:

Чтобы преобразовать индекс строки и столбца в строку позиции («A1», «BN27» и т. Д.), Используйте статический метод CellRange.RowColumnToPosition(int row, int column)

UPDATE
В более новых версиях GemBox.Spreadsheet (3.9 и выше) ExcelCell имеет дополнительное свойство Name , которое возвращает адрес ячейки.

2 голосов
/ 03 августа 2011

Я знаю, что у вас есть ответ, который вы ищете, но так как кто-то еще порекомендовал коммерческий продукт, я рекомендую вам взглянуть на epplus , который является бесплатным, и по совпадению, я случайно использовал сегодняв первый раз.Он имеет множество расширенных функций и очень простой и интуитивно понятный API.

0 голосов
/ 03 августа 2011

Согласно документации Gembox, существует метод CellRange.ToString, который «возвращает строку, представляющую текущий CellRange».Вы можете попробовать это.

Ссылка: http://www.gemboxsoftware.com/Spreadsheet/Help/index.aspx

...