`
yongpeng
  • 浏览: 29350 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Excel 读写操作

阅读更多

package trans;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ReadWExcel {

 // 从源文件中获取oui信息
 public static List<String> getOUI(String path, int snum) {
  List<String> lst = new ArrayList<String>();
  try {
   InputStream is = new FileInputStream(path);
   jxl.Workbook rwb = Workbook.getWorkbook(is);
   // 获得总 Sheets
   Sheet[] sheets = rwb.getSheets();
   int sheetLen = sheets.length;
   // 多个sheet
   // for (int i = 0; i < sheetLen; i++) {
   // // 获得单个Sheets 含有的行数
   // jxl.Sheet rs = rwb.getSheet(i); //
   // Cell[] cell_domain = rs.getColumn(0);// 读取第一列的值
   // for (int j = 1; j < cell_domain.length; j++) {
   // //
   // System.out.println("第"+j+"Values:"+cell_domain[j].getContents());
   // String sno = "";
   // if(cell_domain[j].getContents().indexOf("-")>0){
   // String[] slist = cell_domain[j].getContents().split("-");
   // sno = slist[1];
   // }
   // lst.add(sno);
   // }
   // }
   // 获得单个Sheets 含有的行数
   jxl.Sheet rs = rwb.getSheet(snum); //
   Cell[] cell_domain = rs.getColumn(0);// 读取第一列的值
   for (int j = 1; j < cell_domain.length; j++) {
    // System.out.println("第"+j+"Values:"+cell_domain[j].getContents());
    String sno = "";
    if (cell_domain[j].getContents().indexOf("-") > 0) {
     String[] slist = cell_domain[j].getContents().split("-");
     sno = slist[1];
    } else {
     sno = cell_domain[j].getContents();
    }
    lst.add(sno);
   }
   rwb.close();
  } catch (Exception ex) {
   ex.printStackTrace();
  }
  return lst;
 }

 // 像源文件中写入读取的数据
 public static void writeSno(String path, int snum, int cnum,
   Map<String, String> map) {
  List<String> lst = new ArrayList<String>();
  try {
   Workbook wb = Workbook.getWorkbook(new File(path));
   jxl.Sheet rs = wb.getSheet(snum); //
   // 打开一个文件的副本,并且指定数据写回到原文件
   WritableWorkbook book = Workbook.createWorkbook(new File(path), wb);
   WritableSheet sheet = book.getSheet(snum);
   Cell[] cell_domain = rs.getColumn(0);
   // System.out.println("cell_domain1.length:" + cell_domain.length);
   for (int i = 1; i < cell_domain.length; i++) {
    String sno = "";
    if (cell_domain[i].getContents().indexOf("-") > 0) {
     String[] slist = cell_domain[i].getContents().split("-");
     sno = slist[1];
    } else {
     sno = cell_domain[i].getContents();
    }
    if (map.containsKey(sno)) {
     jxl.write.Label label = new jxl.write.Label(cnum, i, map
       .get(sno));
     sheet.addCell(label);
    } else {
     jxl.write.Label label = new jxl.write.Label(cnum, i, "无设备");
     sheet.addCell(label);
    }
   }
   book.write();
   book.close();
  } catch (Exception ex) {
   ex.printStackTrace();
  }
 }

 // 将oui——sno转换成含,分隔的字符串
 public static String getSnoString(List<String> list) {
  String sno = "";
  for (String num : list) {
   sno += "'" + num + "',";
  }
  return sno.substring(0, sno.length() - 1);
 }

 // 从查询出的结果文件中读取信息
 public static Map<String, String> getResult(String path) {
  Map<String, String> map = new HashMap<String, String>();
  try {
   System.out.println("start ==================================");
   File files = new File(path);
   if (!files.exists()) {
    files.createNewFile();
    System.exit(1);
   }
   InputStream in = new FileInputStream(files);
   BufferedReader contentSteam = new BufferedReader(
     new InputStreamReader(in));
   List<String> content = new ArrayList<String>();
   String tempLine = null;
   while ((tempLine = contentSteam.readLine()) != null) {
    content.add(tempLine);
   }
   for (int i = 0; i < content.size(); i++) {
    String lineString = content.get(i);
    String[] args = lineString.split(",");
    // System.out.println("size:" + args.length);
    if (args.length > 1) {
     if (args[0].trim().indexOf("-") > 0) {
      map.put(args[0].trim().substring(
        args[0].trim().indexOf("-") + 1,
        args[0].trim().length()), args[1].trim());
     } else {
      map.put(args[0].trim(), args[1].trim());
     }
     // System.out.println("key: " + args[0].trim() +" value:"+
     // args[1].trim());
    } else {
     if (args[0].trim().indexOf("-") > 0) {
      map.put(args[0].trim().substring(
        args[0].trim().indexOf("-") + 1,
        args[0].trim().length()), "");
     } else {
      map.put(args[0], "");
     }
     // System.out.println("key: " + args[0].trim() +" value:");
    }
   }
   contentSteam.close();
   in.close();
   System.out.println("end  ==================================");
   return map;
  } catch (Exception e) {
   e.printStackTrace();
   System.exit(1);
  }
  return map;
 }

 // 从数据库中读取信息放入map中
 public static Map<String, String> getResultDB(String sql) {
  Map<String, String> map = new HashMap<String, String>();
  Connection cn = null;
  Statement stm = null;
  ResultSet rs = null;
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   cn = DriverManager.getConnection(
     "jdbc:oracle:thin:@192.168.10.204:1521:ora102", "sa", "sa");
   stm = cn.createStatement();
   rs = stm.executeQuery(sql);
   while (rs.next()) {
    String oui_sno = rs.getString("ou");
    String pppoe = rs.getString("po");
    if (oui_sno.indexOf("-") > 0) {
     map.put(oui_sno.substring(oui_sno.indexOf("-") + 1, oui_sno
       .length()), pppoe);
    } else {
     map.put(oui_sno, pppoe);
    }
   }
   closeDB(cn, stm, rs);
   // for(Iterator<String> iterator = map.keySet().iterator(); iterator
   // .hasNext();)
   // {
   // System.out.println("Key: " + iterator.next());
   // }
   return map;
  } catch (Exception e) {
   e.printStackTrace();
   closeDB(cn, stm, rs);
  }
  return map;

 }

 // 关闭数据库
 private static void closeDB(Connection cn, Statement stm, ResultSet rs) {
  try {
   if (null != rs) {
    rs.close();
   }
   if (null != stm) {
    stm.close();
   }
   if (null != cn) {
    cn.close();
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args) {
  String sourcefile = "D://2.xls";
  List<String> list = getOUI(sourcefile, 2);
  String s = getSnoString(list);
  // Map<String, String> map = getResultDB(sql);
  // Map<String, String> map = getResult("d:\\jieguo.txt");
  // writeSno(sourcefile, 2, 4, map);
 }

}

分享到:
评论

相关推荐

    c++ 对excel 读写操作

    C++ 对 Excel 读写操作 本文主要介绍了使用 C++ 语言在 Visual Studio(VS)下对 Excel 文件的读写操作,使用 MFC 库和 ODBC 技术实现对 Excel 文件的读取和写入。 标题解释 本文的标题“C++ 对 Excel 读写操作”...

    C#对EXCEL超级详细读写操作

    总之,C#中的Excel读写操作涉及到与Excel对象模型的交互,包括应用、工作簿、工作表和单元格等。使用`Missing`参数可以方便地处理那些可选的参数,而`DataTable`和`DataSet`则是常见的数据容器,用于在C#程序和Excel...

    excel读写操作所用的所有包

    标题提到的是"excel读写操作所用的所有包",这通常指的是能够处理Excel文件的API。在给定的标签中提到了"poi jar包",这是Apache POI项目的一部分,专门用于处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls...

    .net c#控制excel读写操作

    1. **Excel读写操作**: - **读取Excel**:在C#中,可以使用Microsoft.Office.Interop.Excel库(也称为Excel Interop)来与Excel进行交互。首先,需要创建Excel应用程序对象,然后打开工作簿,接着读取工作表中的...

    jxl的excel读写操作

    以下是对JXL库在进行Excel读写操作时的一些关键知识点的详细解释: 1. **安装与引入** 首先,你需要将JXL库添加到你的项目类路径中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...

    VC之Excel读写操作

    在VC++(Visual C++)开发环境中,进行Excel读写操作是常见的需求,尤其是在数据分析、报表生成或自动化处理中。本篇文章将详细讲解如何利用Microsoft的COM组件(Component Object Model)接口来实现这一功能,主要...

    excel 读写操作 .rar

    提供的"excel 读写操作 .vi"文件很可能是实现LabVIEW Excel读写的实例代码,你可以通过打开这个VI来学习具体的操作流程。这个VI通常会包含打开/创建工作簿、读取/写入数据、关闭工作簿等一系列步骤,是理解LabVIEW ...

    陈国洪 Excel 读写 操作 实例.zip

    陈国洪的Excel读写操作实例为我们提供了一套详细的指南,帮助我们掌握如何高效地利用Python进行Excel文件的读取、修改和保存。这篇内容将深入探讨这些知识点。 首先,我们要了解Python中的几个关键库,如pandas和...

    excel 读写操作类

    在编程领域,为了实现对Excel文件的自动化处理,我们通常会利用特定的库或API来执行读写操作。本篇将详细介绍如何进行Excel的读写操作,并探讨相关的编程知识点。 1. **库的选择**: - 对于Python,我们可以使用`...

    Excel读写操作

    在IT领域,Excel读写操作是一项常见的任务,特别是在数据分析、报表生成和自动化处理中。Excel因其易用性和强大的数据管理功能而备受青睐。本篇将详细介绍如何在编程环境中进行Excel的读取和写入操作,并结合描述中...

    python操作Excel读写操作

    规范地集成了Python对Excel的读写操作,并有清晰的解释。

    Vc 对Excel 读写操作

    在VC++编程环境中,对Excel进行读写操作是一项常见的任务,尤其在数据分析、报表生成以及自动化处理等场景中。本文将详细阐述如何使用VC++与Microsoft Office的COM接口来实现Excel的读写、合并单元格及设置边线颜色...

    excel读写.zip

    "火山PC"可能是某个特定的平台或工具,它可能集成了上述提到的一些技术,以便在个人电脑上方便地进行Excel读写操作。具体功能和用法可能需要查看该平台的文档或指南。 综上所述,"excel读写.zip"可能包含了使用...

    ExcelFunction_读写excel_读写excel_excel读写_excel读写_源码

    本文将深入探讨如何使用C#编程语言来实现Excel的读写功能,基于提供的标题"ExcelFunction_读写excel_读写excel_excel读写_excel读写_源码"和描述,我们可以理解这是一个已经封装好的类库,方便开发者直接调用。...

    一种基于Java注解和反射机制的Excel文件读写操作方法.zip

    在Excel读写操作中,我们可以通过反射获取带有`@ExcelColumn`注解的字段,并根据其对应的列名来读取或写入Excel数据。 下面是一个简化的流程概述: 1. 定义一个实体类,其中的字段使用`@ExcelColumn`注解,指定...

    java操作excel读写

    java操作excel读写,可以根据自己的需要灵活修改。导入导出excel

    Excel读写_labviewexcel_Excel读写功能_

    在LabVIEW编程环境中,Excel读写功能是一种常用的数据处理技术,尤其在数据分析、报表生成以及与Excel文件交互的场合。本教程将详细讲解如何利用LabVIEW的“labviewexcel”工具来实现Excel数据的读取和写入。 首先...

    Qt Excel的读写

    本示例“Qt Excel的读写”专注于使用Qt进行Microsoft Excel文件的处理,这对于数据导入、导出或分析的应用程序至关重要。在描述中提到,该Demo是使用Qt5.8版本和MinGW编译器编译的,这意味着它适用于Windows环境,...

Global site tag (gtag.js) - Google Analytics