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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> добавление данных в excel 
:(
    Опции темы
golfV
Дата 25.2.2010, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

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



Доброго времени суток!

Возник таой вопрос, надо заносить данные в ексель, пробую делать это таким способом
Код

System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;

            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            excelapp = new Excel.Application();
            excelapp.Visible = false;
            excelappworkbooks = excelapp.Workbooks;
            excelappworkbook = excelapp.Workbooks.Open(@"C:\a.xls",
                               Type.Missing, Type.Missing, Type.Missing,
             "WWWWW", "WWWWW", Type.Missing, Type.Missing, Type.Missing,
              Type.Missing, Type.Missing, Type.Missing, Type.Missing,
              Type.Missing, Type.Missing);
            excelsheets = excelappworkbook.Worksheets;
            excelworksheet = (Excel.Worksheet)excelsheets.get_Item(3);
            excelworksheet.Activate();
                    excelcells = (Excel.Range)excelworksheet.Cells[x, 1];
                    excelcells.Value2 = textBox1.Text;
                    excelcells = (Excel.Range)excelworksheet.Cells[x, 2];
                    excelcells.Value2 = textBox2.Text;
                    excelcells = (Excel.Range)excelworksheet.Cells[x, 4];
                    excelcells.Value2 = textBox6.Text;       
            

добавляет нормально, вопрос в том как сделать чтобы каждая последующас запись добалялась в следующую строку а незаменяла первую запись? подскажите как это реалтзовать?
PM MAIL   Вверх
CYBERDREAM
Дата 25.2.2010, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



После каждого прохода X++

ох помню я намучался без этих строк в свое время
Код

System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;

            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
golfV
Дата 25.2.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

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



а как можно проверить пустая ли ячейка или нет? подскажите пожалуйста
PM MAIL   Вверх
CYBERDREAM
Дата 25.2.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Код

excelcells = (Excel.Range)excelworksheet.Cells[x, 4];
if(String.IsNullOrEmpty(excelcells.Value2))
{
   //Пустая
}



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
golfV
Дата 25.2.2010, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

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



большое спасибо всё работает. Появился еще вопросик. Наверно это уже другая тема но я все таки спрошу
когда добавил данные,  закрываю Excel.Application
Код

excelappworkbook.Saved = true;
excelapp.Windows[3].Close(false, Type.Missing, Type.Missing);
excelapp.Quit();

всё закрывается но когда я смотрю в таск менеджер там все равно висит процес экселя и их столько сколько раз я добавлял данные. Все они закрываются после того как я закрою свое приложение. Подскажите как его правельно закрывать ?
PM MAIL   Вверх
CYBERDREAM
Дата 26.2.2010, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



У меня вечно эта проблема возникала при раннем связывании.
Можешь попробовать так, не знаю логично ли, но работает.

Код

            var oldProcess = System.Diagnostics.Process.GetProcessesByName("EXCEL");

            var excelapp = new Excel.Application {Visible = false, Caption = "My application"};

            var newProcess = System.Diagnostics.Process.GetProcessesByName("EXCEL");

            var difProcess = new List<System.Diagnostics.Process>();
            foreach (var itemNew in newProcess)
            {
                Boolean isnew = true;
                foreach (var itemOld in oldProcess)
                {
                    if(itemOld.Id==itemNew.Id)
                    {
                        isnew = false;
                        break;
                    }
                }
                if(isnew)
                    difProcess.Add(itemNew);
            }

            excelapp.Quit();

            foreach (var item in difProcess)
                item.Kill();



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
newbieBH
Дата 26.2.2010, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.9.2008

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



я его убивал так ..
Код

            Excel.Application oApplication = new Excel.Application();
            Excel.Workbook    oWorkbook    = null;
            Excel.Worksheet   oWorksheet   = null;
            Excel.Range       oRange       = null;

            ...

            Marshal.ReleaseComObject(oRange);
            oRange = null;
            Marshal.ReleaseComObject(oWorksheet);
            oWorksheet = null;
            oWorkbook.Close(null, null, null);
            Marshal.ReleaseComObject(oWorkbook);
            oWorkbook = null;
            oApplication.Quit();
            Marshal.ReleaseComObject(oApplication);
            oApplication = null;
            GC.Collect();

все работало замечательно.
PM MAIL   Вверх
CYBERDREAM
Дата 26.2.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Пробовал, но у меня работало замечательно только после закрытия моего приложения. Поэтому и выдал другой вариант smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
newbieBH
Дата 26.2.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.9.2008

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



возможно у вас еще осталась какая-нибудь ссылка на обект работающий с документом excel'я поэтому он и висит в памяти даже после того как ваш код уже отработал, и соответственно процесс excel'я пропадает когда вы закрываете приложение. Вот что говорит microsoft по этому поводу.
PM MAIL   Вверх
CYBERDREAM
Дата 26.2.2010, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



в том то и дело что все объекты убил так что даже не знаю. Гляну на досуге еще раз, может не доглядел.


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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