Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Export to Excel: NumberFormat, странный глюк 
:(
    Опции темы
kulibin
Дата 12.6.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Чёто NumberFormat никак не получается изнасиловать:
Код

try
                //тут всегда глючит:
                {
                    sh.get_Range(sh.Cells[3, 8], sh.Cells[rn, 8]).NumberFormat = "0.00";
                    sh.get_Range(sh.Cells[3, 5], sh.Cells[rn, 5]).NumberFormat = "0.00";
                }
                catch { MessageBox.Show("Знов ця хурда-мурда!!!"); }
                //а тут уже нормально всё идёт:
                sh.get_Range(sh.Cells[3,2],sh.Cells[rn,3]).WrapText=true;
                sh.get_Range(sh.Cells[2,1],sh.Cells[rn,8]).Borders.ColorIndex=0;
                sh.get_Range(sh.Cells[2, 1], sh.Cells[2, 8]).Font.Bold = true;

Как я токо не пытался: "Standard", "# ### ##0.00", "0.00". Причём странно то, что такой вариант нормально воспринимается: "#" - жалко только полезного ничего не делает smile.
Помогите плз кто чем может. Целый день парюсь с одним отчётом - там без этого никак.
Да - и ещё деталь такая - это вс 2005. Я поиском пытался такое искать - всё по вс 2003 выдаёт smile. А там как-то вообще по другому. Там using microsoft.... и т.д. в конечном итоге Excel. А в 2005-й так не получается почемуто. Хотя может это в версии Express - может там это как отдельный компонент. Вобщем я референс добавил на Excel 10. И всё почти работает. Странно только когда using пытался написать начало ругаться мол что-то там дублируется в названиях - ну я юзинг убрал и полный путь писаю. Токо этот намбер-формат свинский не хотит работать.  
PM MAIL WWW ICQ   Вверх
kulibin
Дата 12.6.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Наконец то осенило меня. Так нормально работает:
Код

sh.get_Range(sh.Cells[3, 8], sh.Cells[rn, 8]).NumberFormat = "# ##0,00";
sh.get_Range(sh.Cells[3, 5], sh.Cells[rn, 5]).NumberFormat = "# ##0,00";

Короче в маске была точка - ругалось. А стала запятая - теперь работает. Я что-то не очень понял этого прикола - ведь и в ВБА и в шарпе всегда точка в маске как разделитель целой и дробной части числа. Есть опасение, что у меня вот оно сейчас работает - а у кого-то на другой машине может точку потребовать. Чёрт его знает что за ерунда. А именованый формат "Standard" тоже почему-то игнорирует smile. Странно всё это. Может я чего-то не понимаю? Может знает кто в чём тут прикол? 
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 14.6.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Возможно, символ разделителя сильно от самого экселя зависит. А получить разделитель для текущей культуры в .NET можно из Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator 


--------------------
user posted image
PM MAIL WWW   Вверх
kulibin
Дата 14.6.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



а - в том то и прикол: разделитель то зпт - но в маске везде - в т.ч. и в самом Excel - тчк! В самомо же Excel макрос записал - поставил через формат ячейки числовой формат с двумя знаками после зпт - и сам же Excel написал код макроса. И там используется маска для этого формата такого вида: "0.00" - т.е. точка в ней! А когда абсолютно то же самое через шарп делаю - зпт на том же месте почемуто хотит он. Блин интересно всё же - в чём тут прикол? 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0870 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.