2009-07-06 2 views
5

Как часть программы C#, которую я создаю, мне нужно сгенерировать 1 книгу, содержащую; 2 разных листа и 3-й, которые можно было бы производить сколько угодно раз, что является самым эффективным способом сделать это? Я изучил использование шаблонов, хотя я не уверен, как повторять некоторые рабочие листы, пока только показывая других. Любая помощь или совет будут оценены.Использование шаблонов в excel с C#

+0

http://stackoverflow.com/questions/193092/c-how-to-add-excel-worksheet-programatically-office-xp-2003 – SwDevMan81

+0

Спасибо за ваш ответ, я знаю, как добавлять рабочие листы в рабочую книгу, моя трудность заключалась в добавлении листов, которые уже имели форматирование. Возможно шаблон, когда шаблон уже используется. – 2009-07-06 19:43:20

ответ

1

Простым способом является создание рабочей книги с примерами из трех рабочих листов. Затем сделайте копию. Откройте и скопируйте рабочий лист номер 3 в рабочую книгу в качестве новой рабочей таблицы по мере необходимости.

В ответ на комментарий:

Есть несколько двигателей преуспеть в продуктах компонентов .net наши там, как таблицы шестерня или Aspose клетки. Но если ваше приложение является формой окна и на котором, как гарантируется, будет работать приложение, вы можете использовать автоматизацию делопроизводства. Вы не можете юридически использовать автоматизацию офиса на веб-сервере, но это возможно как на веб-сервере, так и на рабочем столе клиента. Я использовал ячейки aspose, и с ними очень легко работать и очень способно и немного дешевле, чем оборудование для электронных таблиц, но также имеет хорошую репутацию. Оба этих компонента имеют очень хорошую документацию о том, как сделать что-либо с помощью excel. Но если у вас есть преимущество и вы хотите использовать автоматизацию делопроизводства, обязательно посмотрите пример кода в Интернете о том, как правильно закрыть excel с C# или vb.net. Есть некоторые трюки, чтобы заставить его нормально закрыться.

+0

Во-первых, спасибо за ответ. Я подумал об этом, хотя я был не уверен, что это лучший метод. Знаете ли вы о каких-либо хороших ресурсах для создания листов excel с помощью C#. Ресурсы, которые я нашел, были довольно бедными. – 2009-07-06 19:07:31

+0

см. Мои правки выше, а также с помощью автоматизации офиса вы можете использовать http: // msdn.microsoft.com/en-us/library/aa272268(office.11).aspx как ссылка api. – gjutras

+0

+1: Так я всегда это делаю. – RBarryYoung

0

имеет ISheet.CopyAfter/CopyBefore методы, которые позволяют копировать весь рабочий лист в рабочей книге или между книгами.

Вы можете увидеть пример дублирования одном рабочем листе несколько раз в листе с диаграммой на несколько листов с графиками образца на странице SpreadsheetGear/Excel отчетов Образцы here.

Отказ от ответственности: У меня есть SpreadsheetGear ООО

0

Я делал это раньше с шаблонами. Я бы создал шаблон xls с первыми двумя листами, которые вы не хотите изменять, затем добавьте 3-й рабочий лист, который вы можете скопировать в конец рабочей книги (так как вам нужно больше рабочих листов).

Если вы знаете заранее, сколько из 3-го рабочего листа вам нужно, вы можете скопировать их до конца и удалить шаблон 3-го слота.

 ExcelTemplateManager t = new ExcelTemplateManager(template_path, log_path); 
    t.CopyWorksheetToEnd(3); 
    t.CopyWorksheetToEnd(3); 
    t.RemoveAtIndexWorksheet(3); 
    t.SetSomeValue(3); 
    t.SetSomeValue(4); 
    t.Close(); 

Если вы не знаете, а затем сохранить шаблон вокруг, чтобы скопировать его в конец по мере необходимости, а затем, когда вы закончите, просто удалите 3-й шаблон рабочего листа.

 ExcelTemplateManager t = new ExcelTemplateManager(template_path, log_path); 
    t.CopyWorksheetToEnd(3); 
    t.SetSomeValue(4); 
    t.CopyWorksheetToEnd(3); 
    t.SetSomeValue(5); 
    t.RemoveAtIndexWorksheet(3); 
    t.Close(); 

Я использовал DLL Microsoft.Office.Interop.Excel, чтобы создать свой класс ExcelTemplateManger. Основная идея - создать копию файла excel шаблона и сработать с копией. Дайте мне знать, если вам нужна помощь в настройке этой части, но это должно быть слишком плохо.

+0

Можете ли вы показать мне, как выглядит ваш менеджер шаблонов. Мне нужно посмотреть, как вы заполняете шаблон – user236215

Смежные вопросы