Robymon Ответов: 3

Как получить имена заголовков столбцов Excel


если мы выбираем лист Excel, то как мы получаем имя заголовков столбцов Excel

Wendelius

Что вы подразумеваете под именами заголовков столбцов? Столбцы называются A, B, C... Не могли бы вы уточнить подробнее.

3 Ответов

Рейтинг:
1

Hari Om Prakash Sharma

Если вы хотите получить столбцы типа A,B,C и т. д.
http://stackoverflow.com/questions/181596/how-to-convert-a-column-number-eg-127-into-an-excel-column-eg-aa[^]

Но в другом стандарте, во-первых Row будет также представлять заголовок столбца. Попробовать это http://stackoverflow.com/questions/3855101/read-column-names-from-excel-file-in-c[^] и http://codehill.com/2009/01/reading-excel-2003-and-2007-files-using-oledb/[^]


Рейтинг:
1

Member 14760582

public List<String> getHeaderData(Sheet sheet) {
		List<String> headers = new ArrayList<>();
		Row row;
		int headerId = 0;
		if (sheet.getRow(headerId) != null && sheet.getRow(headerId).cellIterator() != null) {
			row = sheet.getRow(headerId);

			for (int h = 0; h <= row.getLastCellNum(); h++) {
				if (row.getCell((short) h) != null && row.getCell((short) h).toString().length() != 0) {
					headers.add(row.getCell((short) h).toString());
				}
			}

		}
		return headers;
	}


Richard Deeming

Вопрос был помечен как C#, так что необъяснимый блок кода Java с использованием неопределенной библиотеки (возможно, POI?) на самом деле это не решение вопроса, который был задан.

Рейтинг:
0

Member 12809742

public static Dictionary<string,int> GetColumnMapping(Excel.Worksheet ExcelSheet, int HeaderRowIndex , List<string> Headers, Dictionary<string,int> HeaderMapping)
        {
            if (HeaderMapping != null)
                HeaderMapping.Clear();

            object misValue = System.Reflection.Missing.Value;

            Excel.Range HeaderRange = ExcelSheet.Rows[HeaderRowIndex , misValue];
            Excel.Range currentFind = null;

            foreach (string Header in Headers)
            {
                currentFind = HeaderRange.Find(Header, misValue, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlNext, false, misValue, misValue);
                if(currentFind != null)
                    HeaderMapping.Add(Header, currentFind.Column);
            }

            return HeaderMapping;
        }