Для того, что бы можно было начать работу с Microsoft Excel необходимо в проект добавить ссылку на COM компонент "Microsoft Excel 12.0 Object Library" после чего в проекте можно будет использовать классы из пространства имен Microsoft.Office.Interop.Excel.
Для быстрого старта и понимания работы с Microsoft Excel посредством в COM в C# достаточно базового примера - считывание из указанного файла .xlsx и запись в указанный файл. Я использовал .NET Framework 4 и Microsft Excel 2007.
Код программы с комментариями:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MicrosoftExcel =
Microsoft.Office.Interop.Excel;
namespace MicrosoftExcelDemo
{
class Program
{
static void Main(string[] args)
{
// создание объекта
// приложения
MicrosoftExcel.Application application =
new MicrosoftExcel.Application();
try
{
// открытие диалогового
// окна для поиска файла
application.FindFile();
// считывание данных из активного листа
ReadData(application.ActiveSheet);
// запись в активный лист
WriteData(application.ActiveSheet);
}
catch(Exception e)
{
Console.WriteLine(
"Exception catched " +
"with message: '{0}'",
e.Message);
}
finally
{
// обязательное завершение
// работы приложения
application.Quit();
}
Console.ReadKey();
}
static void ReadData(
MicrosoftExcel.Worksheet workSheet)
{
// индексация в Microsoft Excel идет с 1
// далее следует обход только
// используемой области активного листа
for (int row = 1;
row <=
workSheet.UsedRange.Cells.Rows.Count;
row++)
{
for (int col = 1;
col <=
workSheet.UsedRange.Cells.Columns
.Count;
col++)
{
Console.Write(
"{0, 5} ",
workSheet.UsedRange
.Cells[row, col]
.Value);
}
Console.WriteLine();
}
}
static void WriteData(
MicrosoftExcel.Worksheet workSheet)
{
for (int row = 1;
row <=
workSheet.UsedRange.Cells.Rows.Count;
row++)
{
for (int col = 1;
col <=
workSheet.UsedRange.Cells.Columns
.Count;
col++)
{
workSheet.UsedRange
.Cells[row, col]
.Value *= 10;
}
}
}
}
}
Или вы можете скачать исходный код и файл с которым я работал здесь.
Если возникнут вопросы или что-то не понятно, то обязательно спрашивайте, я всегда рад помочь!