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);
}
}
发表评论
-
使用 apache的 common FTPClient 操作ftp
2009-01-05 09:41 1772import java.io.File; import ja ... -
sun.net.ftp.FtpClient类
2008-12-29 22:52 1866sun.net.ftp.FtpClient.,该类库主要提供了 ... -
Map类的使用
2008-10-08 09:57 2317Map以按键/数值对的形式 ... -
Oracle数据导入导出imp/exp命令
2008-09-09 13:05 872Oracle数据导入导出imp/exp就相当于oracle数据 ... -
Java实用经验总结--日期、数字篇
2008-08-25 16:48 1187Java实用经验总结--日期、数字篇1. 日期部分对于像日 ... -
ORACLE SQL and SQL*PLUS
2008-08-15 10:16 1330四、从多个表里选取数据记录 1. 数据表间的连接 简单的连接语 ... -
常用的SQL语法和数据对象
2008-08-14 12:16 833控制语句 (DML) 部分 1.INSERT (往数据表里 ... -
Oracle 排序中常用的NULL值处理方法
2008-08-14 12:10 11661、缺省处理Oracle在Order by 时缺省认为null ... -
sun.net.ftp.FtpClient使用
2008-08-06 21:10 7838FTP使用sun.net.ftp包下的api,package ... -
加密
2008-04-03 09:28 1439import javax.crypto.Cipher;impo ... -
获得星期信息
2008-04-03 09:20 996String str = "2008-03-03&q ...
相关推荐
C++ 对 Excel 读写操作 本文主要介绍了使用 C++ 语言在 Visual Studio(VS)下对 Excel 文件的读写操作,使用 MFC 库和 ODBC 技术实现对 Excel 文件的读取和写入。 标题解释 本文的标题“C++ 对 Excel 读写操作”...
总之,C#中的Excel读写操作涉及到与Excel对象模型的交互,包括应用、工作簿、工作表和单元格等。使用`Missing`参数可以方便地处理那些可选的参数,而`DataTable`和`DataSet`则是常见的数据容器,用于在C#程序和Excel...
标题提到的是"excel读写操作所用的所有包",这通常指的是能够处理Excel文件的API。在给定的标签中提到了"poi jar包",这是Apache POI项目的一部分,专门用于处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls...
1. **Excel读写操作**: - **读取Excel**:在C#中,可以使用Microsoft.Office.Interop.Excel库(也称为Excel Interop)来与Excel进行交互。首先,需要创建Excel应用程序对象,然后打开工作簿,接着读取工作表中的...
以下是对JXL库在进行Excel读写操作时的一些关键知识点的详细解释: 1. **安装与引入** 首先,你需要将JXL库添加到你的项目类路径中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...
在VC++(Visual C++)开发环境中,进行Excel读写操作是常见的需求,尤其是在数据分析、报表生成或自动化处理中。本篇文章将详细讲解如何利用Microsoft的COM组件(Component Object Model)接口来实现这一功能,主要...
提供的"excel 读写操作 .vi"文件很可能是实现LabVIEW Excel读写的实例代码,你可以通过打开这个VI来学习具体的操作流程。这个VI通常会包含打开/创建工作簿、读取/写入数据、关闭工作簿等一系列步骤,是理解LabVIEW ...
陈国洪的Excel读写操作实例为我们提供了一套详细的指南,帮助我们掌握如何高效地利用Python进行Excel文件的读取、修改和保存。这篇内容将深入探讨这些知识点。 首先,我们要了解Python中的几个关键库,如pandas和...
在编程领域,为了实现对Excel文件的自动化处理,我们通常会利用特定的库或API来执行读写操作。本篇将详细介绍如何进行Excel的读写操作,并探讨相关的编程知识点。 1. **库的选择**: - 对于Python,我们可以使用`...
在IT领域,Excel读写操作是一项常见的任务,特别是在数据分析、报表生成和自动化处理中。Excel因其易用性和强大的数据管理功能而备受青睐。本篇将详细介绍如何在编程环境中进行Excel的读取和写入操作,并结合描述中...
规范地集成了Python对Excel的读写操作,并有清晰的解释。
在VC++编程环境中,对Excel进行读写操作是一项常见的任务,尤其在数据分析、报表生成以及自动化处理等场景中。本文将详细阐述如何使用VC++与Microsoft Office的COM接口来实现Excel的读写、合并单元格及设置边线颜色...
"火山PC"可能是某个特定的平台或工具,它可能集成了上述提到的一些技术,以便在个人电脑上方便地进行Excel读写操作。具体功能和用法可能需要查看该平台的文档或指南。 综上所述,"excel读写.zip"可能包含了使用...
本文将深入探讨如何使用C#编程语言来实现Excel的读写功能,基于提供的标题"ExcelFunction_读写excel_读写excel_excel读写_excel读写_源码"和描述,我们可以理解这是一个已经封装好的类库,方便开发者直接调用。...
在Excel读写操作中,我们可以通过反射获取带有`@ExcelColumn`注解的字段,并根据其对应的列名来读取或写入Excel数据。 下面是一个简化的流程概述: 1. 定义一个实体类,其中的字段使用`@ExcelColumn`注解,指定...
java操作excel读写,可以根据自己的需要灵活修改。导入导出excel
在LabVIEW编程环境中,Excel读写功能是一种常用的数据处理技术,尤其在数据分析、报表生成以及与Excel文件交互的场合。本教程将详细讲解如何利用LabVIEW的“labviewexcel”工具来实现Excel数据的读取和写入。 首先...
在"使用BasicExcel来操作excel的读写例子"中,我们将探讨如何利用这个库实现Excel的简单操作。 首先,BasicExcel的核心功能在于读取和写入Excel工作表。读取Excel文件时,你可以通过指定文件路径,然后调用特定方法...