怎么获取excel中的列名A,B,C...
比如创建一个excel,默认会有A,B,C这些个列名 ,数据格式如下:
A B C
1 2 3
4 5 6
.......
当读取4的时候怎么知道是属于A?不要通过什么column 和row去获取在哪行哪列再去匹配A,B,C这些,有没有直接通过当前Cell获取A,B,C之类的,POI 的API没有此类方法
高手指点下,不胜感激!
比如创建一个excel,默认会有A,B,C这些个列名 ,数据格式如下:
A B C
1 2 3
4 5 6
.......
当读取4的时候怎么知道是属于A?不要通过什么column 和row去获取在哪行哪列再去匹配A,B,C这些,有没有直接通过当前Cell获取A,B,C之类的,POI 的API没有此类方法
高手指点下,不胜感激!
解决方案 »
- ssh2+jasper的奇怪问题,大家来帮忙!
- 如何调用“短信平台”给的java接口类
- 那位Hql高手能够把下面sql改写成Hql,请帮帮忙!!
- 关于Tomcat在Linux启动时候远程与本机差别的问题
- 本人现在学习Hibernate,想请教一下有没有可以验证HQL语句正确性的工具
- 购物车在Struts的实现是怎样实现的请高手们帮帮小弟!多谢
- 请教关于java流的问题
- 为什么我一用lomboz插件, eclipse就卡得要死????有高手赐教没?注:请不要建议小弟用其它的插件
- !!!大家谁有jsp操作水晶报表的例子,环境tomcat4.0 + jsp,急求!!!
- 如何学习struts,有没有什么好书呀?
- 关于Hibernate支持LDAP的问题?
- 关于Spring声明式事务、DAO(Bean继承理解)请朋友们帮忙分析下
{
LabelCell nc = (LabelCell) c2;
String number b2 = nc. getString();
}
if (c2.getType() == CellType. DATE)
{
DateCell nc = (DateCell) c2;
Date number b2 = nc. getDate();
}if (c2.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) c2;
double number b2 = nc.getValue();
}
public ArrayList<Groupinfo> getData(File file, int ignoreRows) {
List<String[]> result = new ArrayList<String[]>();
int rowSize = 0;
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(file));
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFCell cell = null;
for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
HSSFSheet st = wb.getSheetAt(sheetIndex);
for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {
HSSFRow row = st.getRow(rowIndex);
if (row == null) {
continue;
}
int tempRowSize = row.getLastCellNum() + 1;
if (tempRowSize > rowSize) {
rowSize = tempRowSize;
}
String[] values = new String[rowSize];
Arrays.fill(values, "");
boolean hasValue = false;
for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {
String value = "";
cell = row.getCell(columnIndex);
if (cell != null) {
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = sdf.format(date);
} else {
value = "";
}
} else {
value = new DecimalFormat("0").format(cell.getNumericCellValue());
}
break;
case HSSFCell.CELL_TYPE_FORMULA:
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
value = "";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y" : "N");
break;
default:
value = "";
}
}
if (columnIndex == 0 && value.trim().equals("")) {
break;
}
values[columnIndex] = value.trim();
hasValue = true;
}
if (hasValue) {
result.add(values);
}
}
}
String[][] xlsContent = new String[result.size()][rowSize];
System.out.println("rows:" + result.size());
System.out.println("col:" + rowSize);
for (int i = 0; i < xlsContent.length; i++) {
xlsContent[i] = (String[]) result.get(i);
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
return null;
} finally {
try {
if (null != in) {
in.close();
}
} catch (Exception ex) {}
}
}