2010-10-12 3 views
0

Я разрабатываю приложение для работы. Каждое задание генерирует файл excel. У меня будет 50 параллельных заданий. Таким образом, 50 файлов excel будут генерироваться параллельно.excel processing in C#

Я использую C# 3.5 и Excel 2003. Проблема в том, что я не могу создать экземпляр большего количества объектов Excel. Я получаю COMException. Так что мне нужно создать excel-обработку только по одному? У вас есть решение для этого?

Pls help me.

Edit:

первенствовать genration не нужно взаимодействие с пользователем. Его запланированная работа.

Я генерирую Excel (xls). Мне нужно сделать форматирование и раскраску в excel, поэтому я не могу использовать csv. Теперь я синхронизировал код, поэтому в то время только одно задание обрабатывает Excel. Но он занимает слишком много времени, так как только одна обработка excel за раз.

Любая логика объединения в Excel поможет? Пожалуйста, направляйте меня.

+0

У вас есть 50 открытых файлов за то же время? можете ли вы предоставить какой-то код? –

+1

Какой именно формат вы генерируете? .xls? .xslx? .csv? –

+0

Вам действительно нужны 50 файлов? Можете ли вы использовать один файл с 50 рабочими листами? – TMN

ответ

1

Для этого вам нужно будет запустить 50 экземпляров Excel, которые не будут работать.

У вас есть 3 варианта:

  • Используйте Open XML SDK 2.0 for Microsoft Office. Это позволяет вам писать в файл excel, как если бы это был xml-файл. Нет необходимости запускать Excel.
  • Использование служб Excel Excel. Это позволяет обрабатывать Excel на стороне сервера. Нет необходимости запускать Excel. Проблема заключается в том, что версия SharePoint, которая включает службы Excel, является дорогостоящей.
  • Обработка файлов по одному, как вы предлагали.
+0

Open XML поддерживается в Excel 2007. Но мне нужно поддерживать Excel 2003. – jaks

+0

Поскольку Open XML является единственным вариантом для моей проблемы. Перемещение в Excel 2007 и открытие xml. – jaks

0

Требуется ли создание 50 файлов excel для взаимодействия с пользователем?
Если нет, вы можете создать ночное задание, которое генерирует файлы.

Если это текстовый вид формата (или CSV), вам не нужен Excel.
Кроме того, вы можете использовать один экземпляр excel для генерации всех файлов один за другим.

1

ooooh i один раз есть такой проблема b4.

Мое решение - я использую html excel. честно, это своеобразное глупое решение, но оно работает очень хорошо и очень легко реализовать.

1 создать шаблон HTML немного, как этот

<html> 
<body> 
name - <div>$<name>$</div> 
</body> 
</html> 

2 читать ваш шаблон в виде строки

System.IO.StreamReader stream = new System.IO.StreamReader(""); 
string template = stream.ReadToEnd(); 
template = template.Replace("$<name>$", "John"); 

3 сохранить вашу строку как .xls

** создать шаблон листы очень просты.

-создать шаблон первенствовать, как у обычно делают в первенствуете

2 в клетке и хочет, чтобы заменить YOUT типа значения в $$ имени $$ * обратите внимание, что выше я использую $ < «значения»> $.но если мы делаем это, как я полагаю, у cahnge до $$ имя $$ becus для < и> первенствует собираюсь сделать HTMLEncode для нас

3 и может создать много листов, как у, как

4 «Сохранить как». mht

5 а затем изменить файл.mht на .xls и string.Replace ("$$ name $$", "John");

+0

В моей прошлой жизни я сделал это, и это работает очень хорошо. Excel - это в основном табличные данные. Вы используете довольно много форматирования с помощью HTML-тегов, и excel правильно откроет ваш файл. – Pradeep

+0

pls перенаправляют меня на некоторые ссылки, поэтому я могу получить дополнительную информацию об этом. Мой сценарий: у меня будет лист Excel, который содержит несколько листов, мне нужно форматировать excel, создавать в нем графики. С помощью этого типа html можно генерировать диаграммы? – jaks