Необходимо установить Инструменты Microsoft Visual Studio для Office (VSTO).
VSTO может быть выбран в установщике Visual Studio под Рабочими нагрузками> сеть & Облако> Разработка Office/SharePoint.
После этого создают общий проект.NET и добавляют ссылку на Microsoft.Office.Interop.Excel
через то, 'Добавьте Ссылка...> диалоговое окно блоков.
Application excel = new Application();
Workbook wb = excel.Workbooks.Open(path);
Missing.Value
специальная отражательная структура для ненужной замены параметров
Для открытия файла попробуйте это:
objexcel.Workbooks.Open(@"C:\YourPath\YourExcelFile.xls",
missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing,missing, missing);
необходимо предоставить те глупый взгляд 'недостающие' аргументы. Если бы Вы писали тот же код в VB.Net, Вам не были бы нужны они, но Вы не можете избежать их в C#.
Легче помочь Вам, если Вы говорите что случилось также, или что перестало работать, когда Вы выполняете его.
, Но от быстрого взгляда Вы перепутали несколько вещей.
следующее не работает из-за нескольких проблем.
if (Directory("C:\\csharp\\error report1.xls") = "")
то, Что Вы пытаетесь сделать, создает новый Объект каталога, который должен указать на файл и затем проверить, были ли какие-либо ошибки.
то, Что Вы на самом деле делаете, пытается вызвать функцию под названием Каталог () и затем присвоить строку результату. Это не будет работать, с тех пор 1/у Вас нет функции под названием Каталог (представьте str в виде строки), и Вы не можете присвоить результату функции (можно только присвоить значение переменной).
то, Что необходимо сделать (для этой строки, по крайней мере) является следующим
FileInfo fi = new FileInfo("C:\\csharp\\error report1.xls");
if(!fi.Exists)
{
// Create the xl file here
}
else
{
// Open file here
}
относительно того, почему код Excel не работает, необходимо проверить документацию на библиотеку Excel, которая Google должен быть в состоянии предусмотреть Вас.
Действительно ли это - коммерческое применение или некоторый человек, увлеченный своим хобби, / программное обеспечение с открытым исходным кодом?
я спрашиваю это, потому что, по моему опыту, вся свободная.NET альтернативы обработки Excel имеют серьезные проблемы по разным причинам. Для вещей человека, увлеченного своим хобби, я обычно заканчиваю тем, что портировал jExcelApi от Java до C# и использовал его.
, Но если бы это - коммерческое применение, Вы были бы более обеспечены путем покупки сторонней библиотеки, как Aspose. Ячейки . Верьте мне, это полностью ценность это, поскольку это экономит много времени, и время не свободно.