|
Excel or XML
|
|||
---|---|---|---|
#18+
Здравствуйте. В общем есть код такого вида. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Выводит в эксель первый фрагмент прикрепленного изображения. Если фрагмент изменить на: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
То выводит второй фрагмент, как видно время правильное. Интервал таймера одна секунда. Так вот вопрос имеет ли практическое значение добавления Stop и Start? Если добавлять их в XML файл, а не напрямую в Excel, насколько увеличится скорость? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 10:32 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Забыл добавить. Язык - C#, using Microsoft.Office.Core; using Excel = Microsoft.Office.Interop.Excel; Для работы с excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 10:34 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
AnektoТак вот вопрос имеет ли практическое значение добавления Stop и Start?Не имеет, таймер и цикл работают в одном потоке и DoEvents в цикле нет. Пока цикл не закончится, таймер снова не тикнет. AnektoЕсли добавлять их в XML файл, а не напрямую в Excel, насколько увеличится скорость?В разы. Но если и в текущем виде это происходит быстрее, чем тикает таймер, то смысла переделывать нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 11:30 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
А, одна секунда же, и кое-где на первом скриншоте период в две. Тогда конечно смысл имеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 11:34 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Antonariyсмысл имеетизбавиться от экселя. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 11:34 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anekto, значительно увеличить скорость, можно переписав следующий код на одно обращение к Excel: Код: c# 1. 2. 3. 4. 5. 6.
Есть возможность за один раз задать Range и ей надо пользоваться. Потому как чем больше обращений к объектам Excel (с данном случае к Cell), то тем ощутимее тормоза. Проверено не одним разработчиком :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 11:36 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
skyANA, Спасибо, переписал код на такой. Код: c# 1. 2. 3. 4. 5. 6.
Так же пропускает, видимо придется на XML, потом конвертировать в excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:08 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
AnektoТак же пропускает...Может я чего упустил, но раньше слова "пропускает" не было в топике. О чём речь? Быстрее-то стало? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:11 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
skyANA, На приложенном изображении вместе с Start() Stop(). Секунды пишутся иногда с прерыванием на одну секунду, пропускает. Без этого все пишется нормально. То есть без старт и стоп идет 1 2 3 4 5 6, со старт и стоп идет 1 2 4 5 6 7 9. Я сделал вывод, что код заполнения в Excel выполняется больше секунды, раз иногда идет такое различие. После изменения кода с использованием Range вместо цикла по ячейкам, ситуация повторилась, но в меньшей степени. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:34 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Выкинуть excel на помойку, сливать данные в xml / json. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:37 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Хм, хорошо бы замерять время выполнения server.GetAllValues(), прежде чем выкидывать excel на помойку полностью переписывать код. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:40 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anekto, замерьте время выполнения различных кусков кода при помощи Stopwatch. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:41 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
codearticles.ru, Да, уже понял, что придется в XML писать, просто в конечном итоге должна получиться понятная для юзера таблица в excel. Ну придется дописать конвертатор xml to xlsx, просто не думал, что все настолько тормознуто записывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:43 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anektocodearticles.ru, Да, уже понял, что придется в XML писать, просто в конечном итоге должна получиться понятная для юзера таблица в excel. Ну придется дописать конвертатор xml to xlsx, просто не думал, что все настолько тормознуто записывается.Хм, я в своё время туеву хучу прайсов вывел в Excel средствами Microsoft.Office.Interop.Excel, не припомню, чтобы кто-то жаловался на тормоза. Простое правило: как можно меньше обращений к объектам Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 12:47 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Теперь у меня интересная ситуация. Судя по стопвач, код внутри Stop() Start() выполняется в худшем случае четверть секунды. Но все равно интервал иногда составляет 2 секунды. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 13:02 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anekto, Второй Stop() нечаянно прилепился, в коде его нету, не обращайте внимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 13:03 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anektoпридется дописать конвертатор xml to xlsxНе нужно этого делать. У экселя есть свой собственный чисто xml-формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 13:09 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
skyANAХм, хорошо бы замерять время выполнения server.GetAllValues(), прежде чем выкидывать excel на помойку полностью переписывать код. Хорошо бы прикинуть, накой ляд тут вообще приплели excel. Anektocodearticles.ru, Да, уже понял, что придется в XML писать, просто в конечном итоге должна получиться понятная для юзера таблица в excel. Ну придется дописать конвертатор xml to xlsx, просто не думал, что все настолько тормознуто записывается. Твоя ошибка в том, что ты путаешь хранение данных и их отображение. Хранением данных занимают базы данных (в частности XML может быть по сути базой данных в первом приближении). Отображением данных занимаются такие клиентские системы, как excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 16:16 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
codearticles.ru, Но ведь мне нужно именно корректное ОТОБРАЖЕНИЕ данных для пользователя в результате, поэтому и решил сразу писать в эксель, минуя XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 16:39 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anektocodearticles.ru, Но ведь мне нужно именно корректное ОТОБРАЖЕНИЕ данных для пользователя в результате, поэтому и решил сразу писать в эксель, минуя XML. Я еще раз повторяю, хранение и отображение - это перпендикулярные вещи. Зачем нужны СУБД, если есть Excel для хранения и отображения, такова твоя логика? Как сделать отображение в Excel из XML - есть много способов, в том числе и средствами самого же Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 17:13 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
codearticles.ruХорошо бы прикинуть, накой ляд тут вообще приплели excel. И XML тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 17:56 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Cat2, Ладно, в любом случае, меня больше не интересует тема, если только кто-то не ответит на пост о том, почему код выполняется 170 миллисекунд, а на деле записывается с разницей больше секунды. Насчет зачем нужен Excel или XML, это условия обговоренные заказчиком с предыдущим исполнителем, я придерживаюсь их. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 20:06 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
AnektoЛадно, в любом случае, меня больше не интересует тема, если только кто-то не ответит на пост о том, почему код выполняется 170 миллисекунд, а на деле записывается с разницей больше секунды.Запусти stopwatch вне цикла. И показывай ElapsedMilliseconds в цикле. Возможно, это даст объяснение. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 21:59 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
AnektoНасчет зачем нужен Excel или XML, это условия обговоренные заказчиком с предыдущим исполнителем, я придерживаюсь их. Я сомневаюсь, что заказчик требовал XML. Вот выгрузку в Excel он вполне мог потребовать, но это не повод писать в эксель напрямую. Например, можно взять бесплатные ReportBuildr и ReportViewer который может и в эксель, и в ворд, и в пдф экспортировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 22:14 |
|
Excel or XML
|
|||
---|---|---|---|
#18+
Anekto, если интервал времени задан 1 секунда, то таймер будет тикать ровно через одну секунду (без Start/Stop). Если использовать Start/Stop, то таймер будет тикать через интервал 1 секунда + время выполнения метода. Естественно, периодически будет выпадать одна секунда. PS: пиши в формат CSV - дёшево и сердито. Excel откроет его и покажет в виде таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 22:16 |
|
|
start [/forum/topic.php?fid=20&fpage=106&tid=1402390]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 150ms |
0 / 0 |