2014-10-14 1 views
-1

Я поддерживаю старое приложение на C#, использующее ExcelWriter версии 5. В следующем году мы обновим до 64 бит, и я искал любую документацию по этому обновлению. Я только искал обновление с версии 6, и они говорят, что старые версии не поддерживаются.Обновление с ExcelWriter версии 5

Теперь, с SAXW5NET.DLL я:

using SoftArtisans.OfficeWriter.ExcelWriter; 
using SoftArtisans.ExcelWriter; 

SAExcelApplicationDotNet xla = new SAExcelApplicationDotNet(); ----> ERROR 

ExcelTemplate xlt = new ExcelTemplate(); 
xlt.Open(templatepath); 

, а затем я поручаю все данные в хъ ...

xlt.SetCellDataSource(....) 

в конце концов, я обрабатываю шаблону

xlt.Process(); 

и я сохраняю его в объекте "xla"

xla = xlt.Save(); ---> ERROR 

Но с новой ссылкой это неправильно ...

Любой может мне помочь, пожалуйста?

Заранее спасибо.

Ханна

ответ

0

Самое большое изменение в API было от 6 версии до версии 7, но это на самом деле не так уж плохо. В целом SoftArtisans, как правило, довольно хорошо избегают изменений API.

Я предлагаю вам пойти на их неподдерживаемую страницу версии http://www.officewriter.com/unsupoorted-versions-documentation

и скачать старую документацию. Вложенный PDF-файл в zip-файле содержит руководство по обновлению от версии 6 до версии 7, которое должно вам очень помочь.

Я не думаю, что в API появились изменения с 7 по 9, за исключением дополнительных функций.

1

Вот несколько статей KB, которые помогут ответить на ваши вопросы об использовании OfficeWriter на 64-разрядных системах:

64-битная поддержка была добавлена ​​в версии 6.9.1 из ExcelWriter (версия 3.9.1 или OfficeWriter). Однако это относится только к чистым .NET-классам. Я вижу из вашего кода, что вы используете чистый объект .NET ExcelTemplate (в пространстве имен SoftArtisans.OfficeWriter.ExcelWriter), но вы также используете устаревшую версию COM-взаимодействия объекта ExcelApplication (в пространстве имен SoftArtisans.ExcelWriter). COM-версия ExcelWriter поддерживает только 32-разрядную поддержку и устарела.

Чтобы использовать более новую 64-разрядную версию ExcelWriter, вам необходимо внести некоторые изменения в части вашего кода, которые используют объект ExcelApplication.

Также были внесены некоторые незначительные изменения в API объекта ExcelTemplate в версии 9 и выше (See Upgrading OfficeWriter v8 to v9). Например, вместо метода SetCellDataSource() вы должны использовать BindCellData().

Миграция вашего кода займет немного времени, но вы сможете использовать поддерживаемую версию продукта со всеми последними исправлениями и новыми функциями, включая поддержку новых форматов файлов OOXML (.xlsx и. XLSM)

Вот пример того, как можно изменить код, приведенный выше, если вы используете текущую версию OfficeWriter:

using SoftArtisans.OfficeWriter.ExcelWriter; 

ExcelApplication xla = new ExcelApplication();  
ExcelTemplate xlt = new ExcelTemplate(); 
// open the template workbook with the ExcelTemplate object 
xlt.Open(templatepath); 
//set your datasources 
xlt.BindCellData(....) 
//populate the workbook  
xlt.Process(); 
//pass the workbook in memory to the ExcelApplication object for post-processing 
Workbook wb = xla.Open(xlt); 
//manipulate workbook as desired and stream file to client machine 
xla.Save(wb, Page.Response, outputfilename, false);