Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Доброго дня всем ! При разработке системы обработки excel документов столкнулся с такой проблемкой, при обработке прайса размером 240 колонок и 3000 строк, система лопатит его примерно около 25 минут, чтение из excela идет по ячейкам в таблицу dasaset. В самом прайсе всего 10 колонок с информацией, остальные пустышки, связи с чем если у кого предложения как необрабатывать пустые колонки а потом их создать программно в datagrid, или как получить из excel, что колонка пустая. Нужно в datagrid отобразить excel документ как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 11:27 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Может лучше сразу все в память загнать? кусок на c# выдран из кода: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 11:40 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
да, забыл: protected object objMissing = System.Reflection.Missing.Value; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 11:50 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Да неохота мне лопатить пустышки даже если я их загружу в память. К стати сделал два вложенных цикла на 1 лимон проходов в которых по строчке кода на увеличение переменной и отображение их в texbox, скорость работы меня не впечатлила, может быть в этом дело ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 11:51 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
objMissing - это и есть пустышка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 11:59 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
не знаю, что там за обработка, но у меня файл 10000 строк 10 столбцов + обработка на лету 3-х столбцов занимает меньше секунды... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 12:04 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Если можно исходничек по подробней можно? Обработка достаточно банальна, открывается excel документ через объектную переменную, берется количество колонок и столбцов, и в цикле по ячейкам идет считывание в таблицу DataSet вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 12:10 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
еще раз обращаю внимание на CurrentRegion (CurrentRegion - область, ограниченная не пустыми ячейками): код на c#, но я думаю и так все понятно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 12:28 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что я изначально не знаю какой регион выделить т.к. документ идет рваный, одна колонка заполнена, две пустых, следующая колонка опять заполнена и т.д., если бы данные были заполнены например с А1 по С10 без пустышек, тогда полнустью согласен можно было зацепить через регион. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 12:42 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
тогда мне не понятно, как формируется цикл по строкам и столбцам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 12:48 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
??? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 12:59 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
ОК, попробуем предложенный вариант, посмотрим, что из этого получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 13:11 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
только в код закралась описочка: worksheet.Cells[3000, 240] (Cells[rowIndex,columnIndex]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 13:49 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Попутно вылезла еще одна проблемка, если в excele есть скрытые столбцы, то они выводется как пустые, что делать, предложения. Вопрос к profil через регион можно зацепить скрытые столбцы, обращение по ячейкам не как не катит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 14:34 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
можно. + можно отобразить все столбцы, примерно так: r1.EntireColumn.Hidden = false; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 14:51 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Кусочек примера для последователей Dim objWB As Excel.Workbook Dim oWS As Excel.Worksheet = DirectCast(objWB.Worksheets("Лист1"), Excel.Worksheet) Dim rng As Excel.Range ' Открываем скрытые колонки oWS.Cells().EntireColumn.Hidden() = False ' Получаем количество реально заполненных колонок без пустышек Dim iColumns As Integer rng = xlApp.ActiveCell iColumns = rng.Column P.S.: Продолжение следует............ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 15:22 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
В это новый день, хочется выразить благодарность доктору PROFI по поводу лечения больного, спасибо доктор ноги стали отрастать ! А теперь по делу, методика копирования данных в память и их обработка из массива, дала примерно 70% прирост производительности, но не как 100000 записей в секунду, может у PROFI стоит супер-пупер комп, у нас он по проще. Остались пока проблемы с выделением областей, сегодня испробуем предложения PROFI, и еще одна проблемка стала лезть, после закрытия объекта excel стали лесть запросы на сохранение документа, где то мне попадалась ссылка по данной теме, но вот, где, склерос хуже соплей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:02 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
letun... после закрытия объекта excel стали лесть запросы на сохранение документа...А сохранять то надо? workbook.Save() workbook.SaveAs() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:13 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
зы. profil ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:16 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Сохранять не надо, да и сохранять нечего в документ же не чего не пишу. Где то попадались мне эти грабли, только вот где ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:19 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
открывай документ только для чтения workbook = workbooks.Open(ExcelOpenDialog.FileName,objMissing,true,objMissing,...); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:25 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Примерчик через OpenDialog ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:31 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
а в чём проблема? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:43 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
PROFI дык у меня тоже самое, и лекарство не помогает, не дело в чем-то другом и лезит он именно при закрытие документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:00 |
|
||
|
Обработка больших массивов из excel
|
|||
|---|---|---|---|
|
#18+
Dim xlApp As Excel.Application = New Excel.Application Dim objWB As Excel.Workbook А вот подоспела и вакцинка: 'Функция для открытия файлов Excel Public Function OpenFile() As String Dim oOpenDialog As OpenFileDialog = New OpenFileDialog oOpenDialog.Multiselect = False oOpenDialog.Title = "Select Excel Style Change File" oOpenDialog.Filter = "Style Change Files (*.xls)|*.xls" If oOpenDialog.ShowDialog = DialogResult.OK Then Return oOpenDialog.FileName 'возвращается полный путь и имя открываемого файла Else Return "" End If ---------------------------------------------------------------------- Открываем книгу 'Получить имя файла через диалог If (Me.TextBox1.Text <> "") Then objWB = xlApp.Workbooks.Open(FileName:=OpenFile ) ...... ' тут ваш код ...... End If ' А вот так закрываем книгу без лишних вопросов xlApp.Workbooks(1).Close(SaveChanges:=False, FileName:=strFilename) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:49 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32721904&tid=1438234]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 278ms |
| total: | 468ms |

| 0 / 0 |
