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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2011, 22:02   #1
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию С# и Exel

Учусь взаимодействовать с Exel, возникла пара интересных вопросов.

Итак, есть форма. Несколько текстбоксов для ввода исходных данных, кнопка расчет, текстбоксы для вывода расчитанных данных. Кнопка Таблица. по нажатию этой кнопки, все даннын из текстбоксов и лейблов отправляются в Exel. Для этого я написал вот такой код:
Код:
 Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
                Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
                //Книга.
                ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
                //Таблица.
                ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
 
                // [y - строка,x - столбец]
                ObjWorkSheet.Cells[2, 1] = label5.Text;
                ObjWorkSheet.Cells[2, 2] = label6.Text;
                ObjWorkSheet.Cells[2, 3] = label9.Text;
                ObjWorkSheet.Cells[2, 4] = label7.Text;
                ObjWorkSheet.Cells[2, 5] = label10.Text;
                ObjWorkSheet.Cells[2, 6] = label8.Text;
                ObjWorkSheet.Cells[2, 7] = label11.Text;
                ObjWorkSheet.Cells[2, 8] = label4.Text;
                ObjWorkSheet.Cells[2, 9] = label3.Text;
 
 
 
 
                ObjWorkSheet.Cells[3, 1] = textBox6.Text;
                ObjWorkSheet.Cells[3, 2] = textBox1.Text;
                ObjWorkSheet.Cells[3, 3] = textBox2.Text;
                ObjWorkSheet.Cells[3, 4] = textBox5.Text;
                ObjWorkSheet.Cells[3, 5] = textBox7.Text;
                ObjWorkSheet.Cells[3, 6] = textBox4.Text;
                ObjWorkSheet.Cells[3, 7] = textBox3.Text;
                ObjWorkSheet.Cells[3, 8] = textBox9.Text;
                ObjWorkSheet.Cells[3, 9] = textBox10.Text;
 
 
                //Вызываем  эксель
                ObjExcel.Visible = true;
                ObjExcel.UserControl = true;
            }
            catch
            {
                MessageBox.Show("Возможно на этом компьютере присутствует проблема совместимости с MS Exel. Попробуйте установить версию 2007 и выше.");
                textBox1.Focus();
 
 
            }
        }
Теперь вопросы:
Обнаружил, что в некоторых ячейках экзель появляются не цифры, из расчетных текстбоксов, а эти цифры, преобразованные в другой формат. например в тексбоксе 1.08, а в екзеле я вижу 01 авг.
Как этого избежать???

Второе: на форме, меняя один из входных параметров и нажав снова расчет, выходные меняются. Нажав кнопку таблица новые данные летят в новый файл экзель. то есть сколько раз нажму Таблица, столько экзель файлов откроется. Как сделать чтобы все в один файл скидывалось?
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Старый 11.08.2011, 22:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

по первому вопросу. попробуйте перед присвоением значения принудительно установить нужный формат в данной ячейке (не забывая о том, что разделители дробной части в MS Excel и у Вас в программе могут отличаться!)

Код:
// так задаётся текстовый формат
ObjWorkSheet.Cells[2, 1].NumberFormat = "@";

// так задаётся числовой, с двумя знаками после запятой
ObjWorkSheet.Cells[2, 1].NumberFormat = "0.00";
Код я не проверял. Пишу чисто на уровне догадки, как оно могло бы быть...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.08.2011, 22:45   #3
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию

Я проверял. Ругается на NumberFormat.
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Exel. blossom17 Microsoft Office Excel 0 03.06.2010 00:06
Exel в Edit Урба Сергей Общие вопросы Delphi 3 29.10.2009 22:52
EXEL Artomes Microsoft Office Excel 0 02.11.2008 23:18
Exel MAcK Microsoft Office Excel 1 30.04.2007 15:21