|
Чтение .xlsx при помощи Open Xml SDK
|
|||
---|---|---|---|
#18+
Здравтвуйте! Подскажите пожалуйста, как найти индекс колонки? Требуется записать данные из таблицы в массив, выделенная строка находить колонку только для букв A-Z, как переключить на отображение номера колонки, или через какое свойство его найти? public static SharedStringItem GetSharedStringItemById(WorkbookPart workbookPart, int id) { return workbookPart.SharedStringTablePart.SharedStringTable.Elements<SharedStringItem>().ElementAt(id); } public static object[,] ReadXlsFile(string filepath) { try { using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filepath, false)) { var sheets = spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>(); foreach (Sheet sheet in sheets) { WorksheetPart worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(sheet.Id); Worksheet worksheet = worksheetPart.Worksheet; uint i = 0; var rows = worksheet.GetFirstChild<SheetData>().Elements<Row>(); int lenght1 = rows.Count(); int lenght2 = rows.First().Elements<Cell>().Count(); object[,] res = new object[lenght1, lenght2]; foreach (var row in rows) { foreach (var cell in row.Elements<Cell>()) { if (cell.CellValue == null) continue; int ind; if(!int.TryParse(cell.CellValue.Text, out ind)) continue; SharedStringItem strItem = GetSharedStringItemById(spreadsheetDocument.WorkbookPart, ind); int j = cell.CellReference.Value[0] - 'A'; res[i, j] = strItem.Text.Text; } i++; } return res; //return GetRow(spreadsheetDocument.WorkbookPart, worksheet); } } ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2011, 09:14 |
|
Чтение .xlsx при помощи Open Xml SDK
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2011, 10:34 |
|
Чтение .xlsx при помощи Open Xml SDK
|
|||
---|---|---|---|
#18+
Спасибо! Интересно что в списке row.Elements<Cell>() только значимые элементы, т. е количество меньше чем надо, а в row.Elements<Cell>().ToArray() все элементы включая пустые. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2011, 11:16 |
|
Чтение .xlsx при помощи Open Xml SDK
|
|||
---|---|---|---|
#18+
Вот примеры решения такой проблемы, если кому-то понадобится. http://stackoverflow.com/questions/4042345/problem-with-skipping-empty-cells-while-importing-data-from-xlsx-file-in-asp-net http://stackoverflow.com/questions/4923359/how-do-i-have-open-xml-spreadsheet-uncollapse-cells-in-a-spreadsheet http://stackoverflow.com/questions/3837981/reading-excel-open-xml-is-ignoring-blank-cells ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2011, 14:14 |
|
|
start [/forum/topic.php?fid=17&fpage=42&tid=1350656]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 318ms |
total: | 434ms |
0 / 0 |