StudentSC Ответов: 2

Как установить столбец excel datatable в C#?


Привет, я читаю данные excel, и я хочу бросить exceli datatable, который я читаю.
Например, я хочу иметь excel в папке и бросить его в datatable таким же образом, как значения в строке excel, столбце.
Я попытался сделать следующее, Но я делаю ошибки. Одна из моих ошибок заключается в следующем.

Эта линия:

Приложение app=новый Excel.Приложение(); //эта ошибка такова:приложение является неоднозначной ссылкой между корпорациями Майкрософт.Офис.Взаимодействие.Превосходить.Применение и система.Окна.Приложение.

Что я уже пробовал:

using(var conn=new OleDbDataAdapter("Select DISTINCT [File Number] FROM [Sheet1$]" ,conn);
var dt=new System.Data.DataTable();
da.Fill(dt);

Application app=new Application();   //this line error and this error 
Workbook book=null;
Worksheet sheet=null;
Range range=null;

app.Visible=false;
app.ScreenUpdating=false;
app.DisplayAlerts=false;

string Path=Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

book=app.Workbooks.Open(Path + @" ", MissingValue,MissingValue,MissingValue);

range=sheet.get_Range("A1",Missing.Value);
range=range.get_End(XlDirection.xlToRight);
range=range.get_End(xlDirection.xlDown);

string downAddress=range.get_Address(false,false,xlReferenceStyle.xlA1,Type.Missing,Type.Missing);
range=sheet.get_Rane("A1",downAddress);
object[,] values=(object[,])range.Value2;

for(int j=1; j<=values.GetLenght(1); j++)
{
Console.Write("{0}",j);
}

for(int j=1; j<=values.GetLenght(0); j++)
{
Console.Write("{0}",j++);
}

Console.WriteLine();

2 Ответов

Рейтинг:
2

Vinod Jangle

Ошибка, которую вы получаете, говорит о том, что у вас есть 2 пространства имен с одинаковым именем класса приложения, поэтому вам нужно выбрать правильное для вашего использования здесь.

Вы можете либо использовать полное имя класса с пространством имен при объявлении экземпляра приложения, либо создать псевдоним для решения этой проблемы.



using ExcelNS = Microsoft.Office.Interop.Excel; // create alias for Excel namespace

Application app=new ExcelNS.Application();


Или

Application app=new Microsoft.Office.Interop.Excel.Application();


Рейтинг:
0

F-ES Sitecore

В правой части вашего кода

Application app=new Excel.Application();


вы используете Excel.Приложение, чтобы компилятор знал, что это класс приложения в пространстве имен Excel. Однако слева у вас есть только "приложение", поэтому он не знает, является ли это классом приложения в Excel или в системе.Окна. Поэтому обновите левую часть, чтобы устранить двусмысленность.

Excel.Application app=new Excel.Application();


[no name]

Я искал эту ошибку и сделал Excel.Приложение app=новый Excel.Application(); .но эта строка все равно выдает ошибку. ссылка microsoft.office.interop.excel не может быть найдена.

F-ES Sitecore

Убедитесь, что вы правильно добавили ссылку в проект.