strArray
. Тип данных, хранимых в результирующем одномерном массиве - string
.//Создаём приложение.
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
//Открываем книгу.
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(pathToFile, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
//Выбираем таблицу(лист).
Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
// Указываем номер столбца (таблицы Excel) из которого будут считываться данные.
int numCol = 2;
Range usedColumn = ObjWorkSheet.UsedRange.Columns[numCol];
System.Array myvalues = (System.Array)usedColumn.Cells.Value2;
string[] strArray = myvalues.OfType<object>().Select(o => o.ToString()).ToArray();
// Выходим из программы Excel.
ObjExcel.Quit();
pathToFile
- путь к Excel файлу.string pathToFile = @"C:\Users\alexey\data.xlsx";
numCol
- номер столбца в таблице Excel из которого будет происходить чтение данных.strArray
из типа данных string
к другому типу данных, к примеру double
, то это можно сделать нижеприведенным кодом:// Преобразование всех элементов одномерного массива
// strArray из строкового типа в тип double.
for (int i = 0; i < strArray.Length; i++)
DataArray[i] = Convert.ToDouble(strArray[i]);
Public Sub ConvertRowToTable()
Dim textString As String
Dim textArray() As String
textString = ActiveCell.Text 'Получаем строку из активной (выдененной пользователем) ячейки
textArray() = Split(textString) 'Разбиение строки на подстроки, которые будут храниться в элементах массива.
'Разбиение осуществлялось через пробелы
'Цикл объединения элементов массива, слов, разделенных ранее пробелами (дело в том, что функция Split, слова,...
'...разделенные пробелами, разносит в разные элементы массива, и эти слова необходимо объединять в один элемент массива
m = 0
For i = LBound(textArray) To UBound(textArray)
If i = 0 Then
i = 1
End If
Check1 = textArray(i - 1) Like "*[a-z]*" 'Проверка наличия буквенных символов в предыдущей строке элемента массива
Check2 = textArray(i) Like "*[a-z]*" 'Проверка наличия буквенных символов в текущей строке элемента массива
If Check1 And Check2 Then 'Если в строках предыдущего и текущего элементах массива содержиться буквенный текст, то...
textArray(i - 1) = textArray(i - 1) & " " & textArray(i) '...конкатенируем строки текущего и предыдудщего элементов массива
m = m + 1
For n = i To UBound(textArray) - m 'Цикл осуществляющий сдвиг всех элементов массива на m
textArray(n) = textArray(n + 1)
Next n
textArray(n) = "" 'Обнуляем строки последних ненужных элементов массива
i = i - 1 'Осуществляет возврат цикла назад, для повторной проверки одновременного наличия буквенных символов в строке,...
'...уже нового предыдущего элемента массива и текущего элемента массива
End If
Next i
'Цикл формирования таблицы из массива данных
j = 0
n = ActiveCell.Column 'Возвращает номер стобца активной ячейки
k = ActiveCell.Row + 1 'Возвращает номер строки активной ячейки и + 1
For i = LBound(textArray) To UBound(textArray)
If j >= 3 Then 'Если j >= 3, то переходим на новую строку и возвращаемся на изначальный столбец
j = 0 'возвращение на изначальный столбец
k = k + 1 'переход на новую строку
End If
textArray(i) = Replace(textArray(i), "(", "") 'Убираем ненужные скобки
textArray(i) = Replace(textArray(i), ")", "") 'Убираем ненужные скобки
Sheets(1).Cells(k, j + n) = textArray(i)
j = j + 1
Next i
End Sub