Я читаю данные из файла excel, используя Interop lib. Я могу подключиться к Excel и прочитать данные из него.Как преобразовать объект [,] в datatable в C#
Я получаю возвращаемый тип как объект [,]. Я не уверен, что именно он указывает. Я знаю объект [], который представляет собой массив объектов.
Не уверен object[,]
. Я попробовал поиск по Google, но не нашел полезных объяснений.
Кроме того, я хотел бы преобразовать это в datatable и привязать его к виду сетки данных в winforms.
Нужно ли преобразовать выше массив в datatable перед привязкой или есть ли другой способ привязать его к сетке?
Прошу дать мне несколько советов, чтобы получить головы.
Вы найдете ниже код:
void ReadSheetData(string strFilePath)
{
Workbook workBook = _excelApp.Workbooks.Open(strFilePath,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
int numSheets = workBook.Sheets.Count;
for (int sheetNum = 1; sheetNum < numSheets + 1; sheetNum++)
{
Worksheet sheet = (Worksheet)workBook.Sheets[sheetNum];
Range excelRange = sheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
PrepareData(valueArray);
}
}
System.Data.DataTable PrepareData(object[,] valueArray)
{
System.Data.DataTable dtTemp = new System.Data.DataTable();
dtTemp=????? // How to convert object[,] to datatable
return dtTemp;
}
Использование EPPLUS библиотека является бесплатной, может чтение/запись файлов XLSX, являются магнитудами быстрее, чем Interop, более стабильной и преобразование в DataTable является простой командой ToDataTable(). –
Да .. вы правы .. мы не хотели бы иметь никаких внешних зависимостей. Это причина не использовать соединение oledb также –
Для моего личного опыта часто используется чтение EXCLE и импорт данных. Что вы хотите сделать, желательно решить его, создав тип класса, который представляет запись вашего Excel, загружает массив ваших данных. Когда у вас есть массив данных, вы можете делать то, что хотите. Если вы хотите, я положу вас в решение, так как я делаю – daniele3004