C# 2005. Раннее связывание
Ничего ранее предложенное не работает.:confused:
Раннее связывание? Т.е. ты хочешь работать напрямую с форматом? Если так, то это закрытый формат и его описания нигде не встретишь. Всё таки используй лучше MSVS Tools for Office. Или тоже не получается?
В MSDN такого выражения нет.
Взаимодействие Microsoft Excel с приложениями .NET. Позднее связывание.
Автор: Гасанов Ровшан Закариевич
ведущий .NET-разработчик компании PFSoft (pfsoft.com)
Microsoft Certified Application Developer
Email: [email]rovshan_gasanoff@pfsoft.com[/email]
30 мая 2005 года
1. Вступление.
Многим разработчикам рано или поздно приходится сталкиваться с задачами, которые подразумевают использование Microsoft Excel (далее по тексту просто Excel) в своей работе. Не будем перечислять подобные задачи, думаю, читатель сам уже с этим столкнулся. Многие вопросы покажутся Вам очень знакомыми, кое-кто скажет, а зачем такие сложности? Ведь можно применить утилиту tlbimp.exe, импортировать библиотеку типов, создать RCW сборку, добавить на нее ссылку и вам станет доступно пространство имен Excel, со всеми RCW классами, которые отображают в себя "внутренности" Excel. Или еще проще, просто добавить ссылку на COM-объекты Excel в Visual Studio, и она сделает все сама. Все это хорошо, конечно. И просто. Но иногда возникают условия, когда описанное вкратце "раннее связывание" неприемлемо. И тогда на помощь приходит т.н. "позднее связывание", когда типы становятся известными не на этапе компиляции, а на этапе выполнения.
Если тебе нужен обычный доступ к данным, то через ODBC. Используй поиск, подобных тем в этом разделе форуме было много.
Error 2 The type or namespace name 'Tools' does not exist in the namespace 'Microsoft.Office' (are you missing an assembly reference?) C:\C#(Примеры2)\WindowsApplication1\WindowsApplication1\XL.cs 7 24 WindowsApplication1.:D
У тебя конечно должно быть установлено это расширение для Visual Studio, иначе никак......
и он не принимает Workbook и прочее.
Просмотрел поиск - там одно старьё. Прошу помочь выйти на Excel в C#2005.:eek:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
namespace WindowsApplication1
{
public class XL
{
[STAThread]
static void Main()
{
string sAppProgID = "Excel.Application";
// Получаем ссылку на интерфейс IDispatch
Type tExcelObj = Type.GetTypeFromProgID(sAppProgID);
// Запускаем Excel
object oExcel = Activator.CreateInstance(tExcelObj);
object oWorkbooks = oExcel.GetType().InvokeMember("Workbooks",
BindingFlags.GetProperty, null, oExcel, null);
//Создаем новую книгу
object oWorkbook = oWorkbooks.GetType().InvokeMember("Add",
BindingFlags.InvokeMethod, null, oWorkbooks, null);
// Открытие файла d:\book1.xls
// Заносим в массив параметров имя файла
object[] args = new object[1];
args[0] = "D:\book1.xls";
}
}
}
xlsApp = new Excel.ApplicationClass(); и ищи в поисковике примеры с ее использованием
Ничего не идёт - всё очень старо.