操作excel生成oracle数据库
程序员文章站
2022-06-17 17:13:38
...
package Excel_Deal;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class test04 {
public static void main(String[] args) throws IOException {
List<String> list=new ArrayList();
List<String> list01=new ArrayList();
List<String> list02=new ArrayList();
List<String> list06=new ArrayList();
//声明XSSFSheet对象
XSSFSheet sheet = null;
String newCell = "";//用作生成符合sql规范的字符串
XSSFRow row = null;//excel表中的行
int rows = 0;//excel表中的行数
int columns = 0;//excel表中的列数
//System.out.println(System.getProperty("user.dir"));查看当前文件夹路径,方便下方输入文件位置
//建立输入流获取excle文件对象
FileInputStream fileInputStream = new FileInputStream("D:\\software\\idea\\work_place\\code_change\\src\\main\\resources\\hello2.xlsx");
//获取excel文件的工作簿对象
XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
// System.out.println(sheets.getSheetAt(0));
// System.out.println(sheets.getAllNames());
//获取工作簿中的工作表对象
sheet = sheets.getSheet("sheet3");
//以下生成sql语句
//直接写出sql头语句,可根据实际情况修改
// System.out.println("insert into student (id, name, sex, age) values ");
//获取行数
// System.out.println(sheet+"");
rows = sheet.getPhysicalNumberOfRows();
//因为excel中第一行通常为各个列的名字,故舍去,从第二行开始,索引为1
for (int i = 1; i < rows; i++) {
// list.clear();
newCell = "";
//得到Excel工作表的行
row = sheet.getRow(i);
//的得到列数
columns = row.getPhysicalNumberOfCells();
// System.out.println(row.getCell(2).toString()+"__________________________-");
if (row.getCell(0).toString().equals("1.0")) {
System.out.println(
"CREATE TABLE " +row.getCell(1).toString()+"."+row.getCell(2).toString()+" ("
);
}
// System.out.println(row.getCell(1).toString()+"___________");
//循环遍历一行中的每一列数据
for (int j = 0; j < columns; j++) { //columns == 7 总共有几列
// System.out.println(columns);
if (j==0 ||j==1 || j==2 || j==3 ){
continue;
}
//获取一列的数据
String cell = row.getCell(j).toString();
//为了符合sql规范,第一列数据前不需要加”,“,故作判断
if (j == 0 || j==1 || j==2 || j==3 || j==4) {
newCell = newCell + cell;
if (j==4){
list.add(cell);
}else
if (j==1){
list01.add(cell);
}else
if (j==2){
list02.add(cell);
}
}
else
if (j==6){
list06.add(cell);
}
// else if (j==2){
// newCell = newCell + "." + cell;
// }
else if (j==5){
newCell = newCell + " " + cell;
}
else {
newCell = newCell + "," + cell;
}
}
//一行数据读取结束,为了符合sql规范,最后一行结尾应该用”;“表示,故作判断
// if (i == rows - 1) {
// if (sheet.getRow(i+1).getCell(1).toString()== null){
// System.out.println("End");
// }else
if (sheet.getRow(i+1).getCell(0).toString().equals("1.0")){
newCell = "" + newCell + ");";
//除去数字中的”.0“
String rpStr = newCell.replace(".0", "");
System.out.println(rpStr);
System.out.println(
"COMMENT ON table "+row.getCell(1).toString()+"."+row.getCell(2).toString()+ " IS "+row.getCell(3).toString()+ ";"
);
for (int j = 0; j < list.size() ; j++) {
// System.out.println("comment on column "+list01.get(j)+"."+list02.get(j)+"."+list.get(j)+" is "+"\""+list06.get(j)+"\";");
System.out.println("comment on column " + row.getCell(1).toString()+"."+row.getCell(2).toString()+"." +list.get(j)+" is "+"\""+list06.get(j)+"\";");
}
list.clear();
list01.clear();
list02.clear();
list06.clear();
System.out.println(
// "Column ->" +row.getCell(4).toString()
);
}
// else if (sheet.getRow(i+1).getCell(1).toString()== null){
// System.out.println("End");
// }
// comment on column t1.id is 'id';
else {
newCell = "" + newCell + ",";
//除去数字中的”.0“
String rpStr = newCell.replace(".0", "");
System.out.println(rpStr);
}
// for (int j = 0; j < list.size() ; j++) {
// System.out.println("-----"+list.get(j)+"-----");
// }
}
//流操作后关闭流,养成好习惯
fileInputStream.close();
sheets.close();
}
}
处理1:excel中 空值置为空值
处理二:在末尾加
上一篇: 大寒节气吃什么传统食物
推荐阅读
-
在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动
-
C#利用ODP.net连接Oracle数据库的操作方法
-
linux oracle数据库删除操作指南
-
Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
-
Oracle数据库操作---基础使用(二)
-
PHP远程连接oracle数据库操作实现方法图文详解
-
.Net Core API使用ODP.NET操作Oracle数据库
-
使用工具 plsqldev将Excel导入Oracle数据库
-
DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)
-
Python操作Oracle数据库的简单方法和封装类实例