Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2015, 15:25   #21
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Ну в общем расчетное число в текстбоксе такое: 152,093939166691

А в экзель передается такое: 152093939166691,00
Почему? Как исправить?

Код такой: ObjWorkSheet.Cells[3, 3].NumberFormat = "0,00";
ObjWorkSheet.Cells[3, 3] = textBox148.Text;
userrrr вне форума Ответить с цитированием
Старый 04.10.2015, 19:05   #22
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А если:
ObjWorkSheet.Cells[3, 3].Value2 = textBox148.Text;
pu4koff вне форума Ответить с цитированием
Старый 04.10.2015, 21:21   #23
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

один фиг выдает:
152 093 939 166 691
userrrr вне форума Ответить с цитированием
Старый 05.10.2015, 07:47   #24
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В общем, если через строку передавать, то нужно с точкой. Или конвертировать в числовой тип. Вот точно рабочий, проверенный код:
Код:
using Excel = Microsoft.Office.Interop.Excel;
...
            var excel = new Excel.Application();

            var workbook = excel.Workbooks.Add();
            var worksheet = workbook.Worksheets.get_Item(1);
            worksheet.Cells[10, 10].NumberFormat = "0,00";
            worksheet.Cells[10, 10].ColumnWidth = 20;
            worksheet.Cells[10, 10].Value2 = "152.093939166691"; // через точку

            worksheet.Cells[11, 10].NumberFormat = "0,00";
            worksheet.Cells[11, 10].Value2 = Convert.ToDecimal("152,093939166691"); // тут как в системе настроено. в РФ это запятая, если в настройках не менял пользователь
pu4koff вне форума Ответить с цитированием
Старый 05.10.2015, 12:20   #25
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Так ведь мне надо вывести содержимое текстбокса:

ObjWorkSheet.Cells[3, 3] = textBox148.Text;
userrrr вне форума Ответить с цитированием
Старый 05.10.2015, 14:01   #26
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Ну, так замените строку на текстбокс
Код:
ObjWorkSheet.Cells[3, 3] = Convert.ToDecimal(textBox148.Text);
pu4koff вне форума Ответить с цитированием
Старый 05.10.2015, 17:56   #27
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Вот так все работает:


textBox148.Text = Convert.ToDouble(X).ToString("0.00" );
ObjWorkSheet.Cells[3, 3] = textBox148.Text.Replace(",", ".");
userrrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматированный вывод в файл Kreadlling Общие вопросы Delphi 1 05.04.2012 21:56
форматированный вывод Dimarik Общие вопросы C/C++ 5 12.03.2011 15:42
Форматированный вывод cout Airou Общие вопросы C/C++ 0 13.12.2010 13:41
Форматированный ввод/вывод на Си Кирилиус Помощь студентам 3 16.09.2009 15:12
Форматированный вывод чисел frankfish Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 04.03.2009 17:59