2016-02-15 5 views
1

Я хотел установить NumberFormat целого столбца с помощью Excel Interop:Excel Interop добавляет косую черту в NumberFormat

column.NumberFormat = "# ##0"; 

Однако, Excel добавляет дополнительную косую черту (открытие документа показывает #\ ##0).

Я нашел следующий связанный с этим вопрос: Excel interop adding slashes in my number formatting string

Однако, используя column.NumberFormatLocal, я бежал в исключение:

необработанное исключение: System.Runtime.InteropServices.COMException: Невозможно установить свойство NumberFormatLocal класса Range

Любые идеи?

+1

У вас есть более 64k ячеек в этой колонке? –

+0

Да, на самом деле у меня есть 72160 строк в этой колонке. –

+0

Пробовал ли вы '@" # ## 0 "?' Он работает на моей машине ... – Kathi

ответ

1

я мог бы решить эту проблему с помощью сепаратора EN-US вместо:

column.NumberFormat = "#,##0"; // Note the comma 

Я не знаю, почему. Мой системный язык и моя заявка CultureInfo - это de-AT. Также мой разделитель тысяч тысяч компьютеров де-AT (т. Е. Пробел).

По какой-то причине Excel Interop тем не менее требует сепаратора en-US.

+0

Как и FYI: факт, что вам нужно использовать сепаратор en-US, заключается в том, что вы используете «NumberFormat», если хотите использовать форматирование с вашей локали, d нужно использовать «NumberFormatLocal» (который почему-то дал вам исключение) –

+0

Спасибо за разъяснение - знаете ли вы случайно, почему я получил исключение? –

+0

Я видел это, когда Excel> 2007 работает в режиме совместимости Excel-2007 (например, открывая файл .xls, а не файл .xlsx), а доступный диапазон содержит более 64 тыс. Строк. Но так как вы сказали, что используете Excel 2013 в обычном режиме, я здесь не понимаю. –