Как работать под Office XP на C#?
Спасибо!!!
People,could u help me? i have been working on Visual .NET 2003, C#, with Excel 2003 and wanna do the same with Excel 2002. how is it possible?what is the difference?
Спасибо!!!
Либо через OLE либо, либо поставь себе VS 2005 там в комплекте есть тулы для того, чтобы можно было легко программить под офис.
Либо через OLE либо, либо поставь себе VS 2005 там в комплекте есть тулы для того, чтобы можно было легко программить под офис.
Да, в действительности делать писанину на C# для создания офисны приложений для OfficeXP получится только через COM и OLE.
Да, в действительности делать писанину на C# для создания офисны приложений для OfficeXP получится только через COM и OLE.
я скачал пакет Офис XP, распаковал скажем в какую-то директорию, а дальше что? я же вижу COM 2003 офиса. как выбрать нужный?еще аналогичный вопрос по офису 2000...
еще вопрос такой. Работтаю с екселевским док-том,
private void FillDocument(){
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlApp.Visible=false;
xlApp.UserControl=false;
....
xlApp.Quit();
}
однако по выходе из функции процесс процесс Excel не вырубается, и если вызвать функцию 5 раз, соответственно на время выполнения программы будет в памяти 5 экселей. как закрыть этот эксель?..
спасибо заранее
People,could u help me? i have been working on Visual .NET 2003, C#, with Excel 2003 and wanna do the same with Excel 2002. how is it possible?what is the difference?
Спасибо!!!
Есть другой путь, который является рекомеднованным Microsoft Office Team'ом (по долгу службы знаю такие подробности :}).
Это DAO PIAs, т.н. Primary Interop Assemblies. В двух словах это мэнэджед обертки для работы с офисными приложениями. Мне приходилось работать только с БД Access, но они тянут весь Office.
Скачать их можно с http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/odc_oxppias.asp
Там же можно и прочитать полее подробно.
В двух словах. Надо распаковать архив в любую папку и оттуда запустить register.bat. Он использует gacutil.exe, его надо скопировать сюда же или прописать в системе к нему path.
После этого в проекте надо добавить референс на Microsoft DAO 3.6 Object Library с закладки COM.
В коде прописываем using dao. Это namespace с набором классов, которые дают удобный доступ ко многим функциям нижнего уровня.
Я к сожалению, работал опять же тока с Access, потому приведу пример кода, который печатает список таблиц и лежащих под ними индексов.
using System.Collections.Generic;
using System.Text;
using dao;
namespace Sample
{
class Program
{
const string xSysPrefix = "MSys";
static void Main(string[] args)
{
DBEngineClass engineClass = new DBEngineClass();
Workspace workSpace = engineClass.CreateWorkspace("WorkSpace", "Admin", "", WorkspaceTypeEnum.dbUseJet);
Database db = workSpace.OpenDatabase(@"D:\Utils\RowsetViewer\Northwind.mdb", null, true, null);
foreach (TableDef tds in db.TableDefs)
{
Console.WriteLine(tds.Name);
Console.WriteLine("------");
if (tds.Name.Substring(0, xSysPrefix.Length) != xSysPrefix)
{
foreach (Index ind in tds.Indexes)
{
Console.WriteLine("index=" + ind.Name);
}
Console.WriteLine("");
}
}
Console.WriteLine("done");
Console.ReadKey();
}
}
}
Спасибо
Уважаемый Track, не могли бы проконсультировать насчет того, каким образом можно работать в .NEt 2003 с Office 2000, или это возможно вообще в принципе.
Спасибо
К сожалению, с Office 2000 из .NET работать не приходилось. Единственное, что я могу сказать, что Office PIAs вроде являются обратно совместимыми, но это достоверно на уровне работы с документами Office, а вот как насчет "подергать" сами Office-приложения, тут я помочь не могу. Опять же, подробно про это (немного другой подход) посмотри, что написал banshee.