public static void main(String[] args) {
String filePath = "C:\\Users\\li-ningning\\Desktop\\fnTable.xls.xls";
// filePath = "C:\\Users\\li-ningning\\Desktop\\master_data_fncrm.xls";
File file = new File(filePath);
try {
FileInputStream in = new FileInputStream(file);
HSSFWorkbook wb = new HSSFWorkbook(in);
// /获取第一张Sheet表
HSSFSheet st = wb.getSheetAt(0);
for (int i = 0; i <= st.getLastRowNum(); i++) {
String sql = "alter table ";
HSSFRow row = st.getRow(i);
if (row != null) {
String tableName = toString((HSSFCell) row
.getCell((short) 0));
String column = toString((HSSFCell) row.getCell((short) 1));
String length = toString((HSSFCell) row.getCell((short) 3));
int value = Integer.parseInt(length);
sql += tableName;
sql += " modify ";
sql += column;
if (value <= 50) {
sql += " varchar(50)";
} else if (value <= 100) {
sql += " varchar(100)";
} else if (value <= 150) {
sql += " varchar(150)";
} else if (value <= 200) {
sql += " varchar(200)";
} else if (value <= 250) {
sql += " varchar(250)";
} else if (value <= 300) {
sql += " varchar(300)";
} else if (value < 500) {
sql += " varchar(500)";
}
sql += ";";
String executeSql = sql;
System.out.println(executeSql);
sql = "";
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static String toString(HSSFCell cell) {
String value = "";
if (cell == null) {
return value;
}
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue().toString();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd").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() ? "YES" : "NO");
break;
default:
value = "";
}
return value.trim();
}