要把表里的数据保存在Excle,要怎么做啊,以前没搞过
解决方案 »
- 急....Java调用C#写的Webservice求解服务器未能识别HTTP头SOAPAction的值:http://tempuri.org/getS
- byte[] buffs = new byte[ BUFSIZE ];大小怎么计算?
- struts 1.X 的 validator
- Ajax用POST方式传中文乱码,如何解决?
- 都说java是跨平台的,为什么我在一台机器上编译通过的程序,在另一台就不能执行,都是win2003,jdk也是一样的,请问这是问什么?
- 想用jmf做个语音聊天系统
- SmartUpload上传 ENCTYPE="multipart/form-data"问题?
- java 如何实现自定义活动页及页面里面的链接
- html+servet出错(入门问题-初学)
- 初学者!高分求教!
- jsp中如何从数据库中取值绑定到下拉列表
- MyEclipse中的Swing插件的配置方法
pinyin4j-2.5.0.jar
poi-3.2-FINAL-20081019.jar
poi-contrib-3.2-FINAL-20081019.jar
poi-scratchpad-3.2-FINAL-20081019.jar
mysql-connector-java-5.1.10-bin.jar
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;import org.apache.poi.hssf.record.formula.functions.Cell;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;/*
* 该类为读取excel文件,并导入到数据库
*/
public class ReadExcelToDB {public static String fileName= "E:\\text.xls";@SuppressWarnings("deprecation")
public static void main(String argv[]) {
Connection con = null;
PreparedStatement ps = null;
try {
con = DBTools.getConnection();
//把一张*.xls的数据表读到workbook里面
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileName));
//读取第一个sheet工作表
HSSFSheet sheet = workbook.getSheetAt(0);//获取工作表的最后一条记录
int rows = sheet.getLastRowNum();
for (int r = 0; r < rows+1; r++) {
//获取当前行数
HSSFRow row = sheet.getRow(r);
if (row != null) {
int cells = 4;
String value = "";
for (short c = 0; c < cells; c++) {
//获取当前行的列数
HSSFCell cell = row.getCell(c);
if (cell != null) {
//判断cell的类型
switch (cell.getCellType()) {
//如果当前cell的数据类型为公式型
case HSSFCell.CELL_TYPE_FORMULA:
break;
// 如果当前Cell的数据类型为数值型
case HSSFCell.CELL_TYPE_NUMERIC:
value += String.valueOf((long)cell.getNumericCellValue())+",";
value.toString();
break;
//如果当前cell的数据类型为字符串类型
case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue() + ",";
break;
//如果当前cell的数据类型为空值
case HSSFCell.CELL_TYPE_BLANK:
break;
//默认
default:
value += ",";
}
}
}HSSFCell cell = row.getCell((short)1);
int cell0 = ExcelUtils.getIntCellValue(row, 0);
int cell2 = ExcelUtils.getIntCellValue(row, 2);
// 下面可以获取汉字拼音的首字母
String firstPy = PinyinToolkit.cn2FirstSpell(cell.getStringCellValue()).toUpperCase();
System.out.println(firstPy);sql = "insert into t_employ(code,name,provinceCode,provinceName,namePy) values(?,?,?,?,?)";
ps = con.prepareStatement(sql);for(int i=0;i<4;i++){
if(ExcelUtils.getStringValue(row,i)==null){
System.out.println(ExcelUtils.getStringValue(row,i));
}else{
ps.setString(i+1, ExcelUtils.getStringValue(row,i));
ps.setString(5, firstPy);
}
ps.setInt(1, cell0);
ps.setInt(3, cell2);
System.out.print(ExcelUtils.getStringValue(row,i)+"/");
}
System.out.println("");
ps.executeUpdate();System.out.println(value);
}
}
} catch (Exception e) {
System.out.println(e);
}
}
}
读到excel后读行和列,然后循环出来,插入到数据库大体思路是这样
你是做数据备份吗?
数据备份的话:用Object Browser有导出到Excel
程序的话:先用SQL把数据读出来。
再用POI或者JXL。(具体你网上查查)