`
小小虾001
  • 浏览: 9833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

excel数据导入到指定的表中(名称与表字段不对应)

 
阅读更多
package com.service.compare;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.eventmodel.EventRecordFactory;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

import com.service.upfile.Link_Database;

public class Com_import {

private Connection conn = null;
PreparedStatement pstmt = null;

public void connect() {
try {
Link_Database demo = new Link_Database();
conn = demo.connect();
} catch (Exception e) {
e.printStackTrace();
}
}

public void close() {
try {
this.conn.close();
} catch (Exception e) {

}
}


public void test(String path,String xmb_bm,String charge_date){

List<Integer> list = new ArrayList<Integer> ();
try {
//OPCPackage pkg = OPCPackage.open(path);
InputStream is = new FileInputStream(path);
Workbook wb = WorkbookFactory.create(new File(path));
Sheet sheet = wb.getSheetAt(0);

for(int i = 0; i<sheet.getLastRowNum(); i++){
Row row = sheet.getRow(i);
if(row != null){
if(i==0){
String str = "电话号码,客户名称,来显,月租,宽带月租,铜缆租用,维护费";
for(int j=0; j<row.getLastCellNum();j++){
Cell cell = row.getCell(j);
if(cell==null || cell.toString().trim().length()==0){
}else if(str.indexOf(cell.toString())!=-1){
list.add(j);
}
}
}else{
StringBuffer str_charge=new StringBuffer();
for(int w=0;w<list.size();w++){
Cell cell = row.getCell(list.get(w));
if(cell==null|| cell.toString().trim().length()==0){
str_charge.append("'0',");
}else{
str_charge.append("'"+cell.toString()+"',");
}
}
if(!str_charge.toString().substring(0, 7).equals("'0','0'")){
String str = str_charge.toString().substring(0, str_charge.lastIndexOf(","));
this.import_date(str,xmb_bm,charge_date);
}
}
}
}
} catch (InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

public void import_date(String args, String xmb_bm,String charge_date){

try {
String sql_bdth = "insert into CAIWU_COMPARE(TELNUMBER,CUSTOMER,CID_CHARGE,JB_YZF,KD_YZF,TL_YZF,WH_CHARGE,XMB_BM,CHARGE_DATE) values ("+args+",'"+xmb_bm+"','"+charge_date+"')";
pstmt = conn.prepareStatement(sql_bdth);
pstmt.execute();
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void delete(String xmb_bm,String charge_date){

try {
String sql = "delete from CAIWU_COMPARE where CHARGE_DATE='"+charge_date+"' and XMB_BM='"+xmb_bm+"'";
pstmt = conn.prepareStatement(sql);
pstmt.execute();
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String[] args){
Com_import demo = new Com_import();
demo.connect();
demo.test("D:/desktop/charge_off_data/新新新.xls","TD","2013-01");

//demo.test("D:/apache-tomcat-6.0.30/webapps/yzxt/data/2013-01/话费清单.xlsx","TD","2013-01");

demo.close();
}

}
分享到:
评论

相关推荐

    excel数据导入sql工具

    在导入过程中,工具会自动或手动将Excel列与数据库表字段匹配,确保数据正确导入。 4. **数据预处理**:在导入之前,可能需要对Excel数据进行预处理,例如删除空值、处理异常值、统一数据格式等。一些工具可能包含...

    Excel数据导入SQL工具

    - 映射与转换:定义Excel列与SQL表字段的对应关系,进行数据类型转换。 - 执行导入:启动导入进程,工具会检查数据并尝试将其导入数据库。 - 错误报告:导入完成后,查看错误日志以解决任何问题。 5. **最佳实践...

    excel 表字段匹配导导入数据库

    以下是对"excel 表字段匹配导导入数据库"这一主题的详细解释。 首先,我们需要理解Excel表格和数据库之间的关系。Excel是一种电子表格软件,方便用户组织、计算和分析数据。而数据库,如SQL Server,是用来存储、...

    excel批量导入数据库

    3. 数据映射:定义Excel列与数据库表字段的对应关系,确保数据类型匹配。 4. 导入操作:执行SQL INSERT语句或使用数据库提供的API将数据写入数据库。 5. 错误处理:设置合理的错误处理机制,捕获并解决导入过程中...

    npoiDLLEXCEL导入到数据库数据表导入到EXCEL

    - 确保Excel列名与数据库表字段对应,或者在插入前进行字段映射。 通过上述步骤,你可以利用NPOI库实现在.NET环境中高效地将数据表导入到Excel,以及从Excel导入到数据库的操作。NPOI库的灵活性和易用性使其成为...

    Excel文件导入到Oracle数据库

    这些工具通常允许设置列映射,方便调整Excel列与Oracle表字段之间的对应关系。 4. **配置导入参数**:在使用工具或脚本时,需指定Excel文件的位置、表名、字段映射、错误处理策略等参数。对于初版限制的30列,如果...

    本地excel文件导入到sql中

    4. **数据映射**:如果Excel列名与SQL表字段名不一致,需要进行映射。此外,还要处理可能存在的主键、外键关系。 5. **数据验证**:导入后,检查数据是否完整无误,对比导入前后的数据量,检查是否有重复值或异常值...

    mysql-Sqlyog-excel-import.rar_excel导入mysql_sqlyog

    - 配置数据源,如数据开始行、列名所在的行以及数据列与数据库表字段的对应关系。 5. 数据预览与映射: - SqlYog会显示一个预览窗口,检查数据是否正确映射到对应的表字段。 - 如果需要,调整列映射,确保数据...

    EXCEL万能导入工具到SQL

    4. **映射配置**:允许用户自定义Excel列与数据库表字段的对应关系,确保数据导入的准确性。 5. **预览与校对**:在实际导入前提供预览功能,让用户可以查看并修正潜在问题。 6. **事务处理**:支持以事务的方式进行...

    XlsToSql(把excel文件导入到MSSQL数据库中)

    2. **映射配置**:设置Excel列与数据库表字段之间的对应关系,以便正确导入数据。 3. **数据转换**:如果需要,工具可能会对数据进行转换,例如,将文本格式的日期转换为日期时间类型。 4. **批量导入**:为了提高...

    mysql里excel数据导入方法.docx

    7. **字段映射**:设置源数据与目标表字段之间的对应关系,确保数据正确导入。 8. **错误处理**:选择如何处理导入过程中遇到的错误,如忽略、停止或替换等。 9. **运行与调度**:决定是否立即执行导入,或者将其...

    C# Excel大量数据快速导入数据库源码

    `Frm_SetColumns.cs`和`Frm_SetColumns.Designer.cs`可能用于设置数据映射,因为导入数据时,往往需要指定Excel列与数据库表字段之间的对应关系。用户可能需要通过这个界面来配置这些映射规则。 `Frm_SetServer.cs`...

    导入excel数据到数据库 .net上传解析excel

    数据库操作前,应确保字段映射正确,例如,Excel列名与数据库表字段对应,数据类型匹配。如果存在数据验证规则,如长度限制、非空检查等,需在插入前进行校验。此外,事务管理也是关键,它可以确保在发生错误时能...

    .net 将EXCEL数据导入sql server

    在导入过程中,XML文件可以用来定义Excel表格的列名与SQL Server表字段之间的映射关系,这样可以确保数据在导入时能够正确地对应到数据库的相应字段。例如,XML文件可能包含类似以下内容: ```xml &lt;Field Excel...

    mysql里excel数据导入方法.pdf

    5. **目标表设置**:导入的数据可以指向已存在的表,同时允许自定义源表与目标表字段之间的映射关系,确保数据准确无误地导入。 6. **列名和表名建议**:在导入前,建议将Excel中的列名和表名改为英文,以遵循标准...

Global site tag (gtag.js) - Google Analytics