Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / из С# вставка в EXCEL 75000 строк / 22 сообщений из 22, страница 1 из 1
30.09.2013, 16:19
    #38412042
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Добрый день!

Подскажите пожалуйста как можно вставить 75000 строк с помощью С#.
Это запрос из SQL. До этого использовал код из статьи в МСДН - PSS ID Number: 306023.(ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.KB.v10.en/enu_kboffdev/offdev/306023.htm#6)
Всё работало, но видно число строк превысило чем 68000 программа ругается, говорит
что недостаточно памяти.
Если кто сталкивался подскажите пожалуйста обойти этот момент.
...
Рейтинг: 0 / 0
30.09.2013, 16:28
    #38412055
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Эксель какой версии, недостаточно памяти в экселе или самой программе, где код наконец?
...
Рейтинг: 0 / 0
30.09.2013, 16:31
    #38412059
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
65000 строк это в старом формате экселя. в новом xslx такого ограничения нет
...
Рейтинг: 0 / 0
30.09.2013, 16:33
    #38412061
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Извиняюсь EXCEL 2010.
про лимит я тоже думал что EXCEL 2010 миллион позволяет. Но почему-то ругается.
...
Рейтинг: 0 / 0
30.09.2013, 16:35
    #38412064
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
формат файла смотрите, а не версию экселя, на котором вы этот файл открываете
...
Рейтинг: 0 / 0
30.09.2013, 16:44
    #38412071
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Сейчас проверил открываю как .xlsx
...
Рейтинг: 0 / 0
30.09.2013, 16:46
    #38412072
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
m_objBook = (Excel._Workbook)(m_objBooks._Open(excelWorkbook, m_objOpt, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt, true, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt));
Может параметры надо прописывать какие нибудь?
...
Рейтинг: 0 / 0
30.09.2013, 16:49
    #38412075
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
в этом не должно быть такого ограничения по строкам. выкладывайте код , которым вы загружаете данные
...
Рейтинг: 0 / 0
30.09.2013, 16:53
    #38412086
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saley, я просил нормальный компилирующийся код, а не этот ошметок.
...
Рейтинг: 0 / 0
01.10.2013, 07:00
    #38412515
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Не шумите господа, вот пожалуйста код
таблица dt это 38 полей и 78630 строк,
excelWorkbook это путь до файла с расширением .xlsx
Код я брал из примера.
public void ExcelUpLoad(DataTable dt, string excelWorkbook, string nmSh)
{
Excel.Application m_objExcel = null;
Excel.Workbooks m_objBooks = null;
Excel._Workbook m_objBook = null;
Excel.Sheets m_objSheets = null;
Excel._Worksheet m_objSheet = null;
Excel.Range m_objRange = null;
Excel.Font m_objFont = null;
Excel.QueryTables m_objQryTables = null;
Excel._QueryTable m_objQryTable = null;
object m_objOpt = System.Reflection.Missing.Value;
m_objExcel = new Excel.Application();
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = (Excel._Workbook)(m_objBooks._Open(excelWorkbook, m_objOpt, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt, true, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt));
m_objSheets = (Excel.Sheets)(m_objBook.Worksheets);
m_objSheets = (Excel.Sheets)(m_objBook.Worksheets);
m_objSheet = (Excel._Worksheet)(m_objSheets.Add(m_objOpt, m_objOpt, m_objOpt, m_objOpt));
m_objSheet.Name = nmSh;


object[,] objData = new Object[dt.Rows.Count, dt.Columns.Count];


for (int jj = 0; jj < dt.Columns.Count; jj++)
{

for (int r = 0; r < dt.Rows.Count; r++)
{


objData[r, jj] = dt.Rows[r][jj].ToString();


}
}
m_objRange = m_objSheet.get_Range("A1", m_objOpt);
m_objRange = m_objRange.get_Resize(dt.Rows.Count, dt.Columns.Count);
m_objRange.set_Value(m_objOpt, objData);

/*Поробывал и так, тоже выдаёт ошибку.
System.Windows.Forms.Clipboard.SetDataObject(objData);
m_objRange = m_objSheet.get_Range("A1", m_objOpt);
m_objSheet.Paste(m_objRange, false);
*/


}
...
Рейтинг: 0 / 0
01.10.2013, 07:46
    #38412523
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
COM interop - зло
...
Рейтинг: 0 / 0
01.10.2013, 08:16
    #38412531
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
ИзопропилCOM interop - зло
Согласен. А как по другому?
...
Рейтинг: 0 / 0
01.10.2013, 11:16
    #38412732
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saleyИзопропилCOM interop - зло
Согласен. А как по другому?
EPPlus, например
...
Рейтинг: 0 / 0
01.10.2013, 11:40
    #38412777
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saleyА как по другому?
Генераторы отчетов, CSV .
...
Рейтинг: 0 / 0
01.10.2013, 12:04
    #38412824
saley
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
МСУsaleyА как по другому?
Генераторы отчетов, CSV .
А с помощью кода который я использовал, понимаю так что невозможно вставить
строк более чем 65000? Значит всё таки существуют ограничения?
...
Рейтинг: 0 / 0
01.10.2013, 12:41
    #38412891
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saley,

на *.xlsx файлах я такого ограничения не встречал
...
Рейтинг: 0 / 0
01.10.2013, 13:01
    #38412936
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saleyА с помощью кода который я использовал, понимаю так что невозможно вставить
строк более чем 65000? Значит всё таки существуют ограничения?
Возможно ты используешь старый 2003 интероп, в котором есть это ограничение.
...
Рейтинг: 0 / 0
01.10.2013, 18:31
    #38413467
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saleyСогласен. А как по другому?
к генаторам отчётов можно добавить
Open XML SDK
...
Рейтинг: 0 / 0
03.10.2013, 07:54
    #38414997
Alex Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
saley,

А на какой строке кода программа валится?
...
Рейтинг: 0 / 0
03.10.2013, 09:18
    #38415031
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Автор давно бы мог тестовый проект сюда прикрепить, но ему больше по душе играть в игру угадай-ка.
...
Рейтинг: 0 / 0
03.10.2013, 15:41
    #38415683
igr_ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Если недостаточно памяти-поищите в своем коде бесконечный цикл
...
Рейтинг: 0 / 0
03.10.2013, 15:58
    #38415727
igr_ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из С# вставка в EXCEL 75000 строк
Порылся в логах ошибок-нашел такое
"Недостаточно памяти для продолжения выполнения программы.". Это у меня самый большой отчет, 600 столбцов. Пользователь говорит, что помогает перезагрузка компа перед запуском формирования отчета. Отчет тоже выгружается в эксель

object[,] objData = new Object[dt.Rows.Count, dt.Columns.Count];
По сути дела вы копируете сюда большой массив данных, т.е. удваиваете требуемую память.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / из С# вставка в EXCEL 75000 строк / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]