1.Excel

名称:test.xls

内容如下:

专业名称

申请学位

姓名

毕业学校

毕业专业

图形学

硕士

曾宏波

中国科学技术大学

数学

线性代数

硕士

樊昊霏

北京大学

基础数学

离散数学

硕士

傅二娟

华东师范大学

数学与应用数学

概率学

硕士

姜清元

北京大学

基础数学

拓扑学

硕士

吕健成

北京大学

数学

基础数学

硕士

谭新文

北京大学

基础

基础数学

硕士

王式柔

辽宁大学

数学与应用数学

基础数学

硕士

熊欢

北京大学

数学系

基础数学

硕士

余孟洋

北京大学

基础数学

基础数学

硕士

张蓉蓉

兰州大学

基础理论

基础数学

硕士

赵沨

北京大学

数学

基础数学

硕士

邹德阳

山东大学

数学与应用数学

2.程序

由于是从别的地方改的,设计模式规划的有点乱,先记录下来:

package com.maggie.odbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class ExcelConnection {

protected static String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";

private static String root = ExcelConnection.class.getResource("").getPath().substring(1);

private static Connection conn = null;

private Statement stmt = null;

public ExcelConnection(String filename) {

String urlString = "";

try {

if (filename != null && filename.indexOf(".xls") != -1) {

urlString = "jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ="

+ root + filename;

System.out.println(urlString);

} else {

throw new Exception("");

}

if (conn == null) {

Class.forName(driverName).newInstance();

System.out.println("Success loading postgresql Driver!");

conn = DriverManager.getConnection(urlString, "", "");

} else

return;

} catch (Exception e) {

e.printStackTrace();

}

}

public Statement createStatement() {

try {

if(stmt == null || stmt.isClosed()){

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_UPDATABLE);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return stmt;

}

public ResultSet executeQuery(String sql) {

ResultSet rs = null;

try {

rs = stmt.executeQuery(sql);

} catch (SQLException e) {

e.printStackTrace();

return null;

} finally {

}

return rs;

}

public void closeStmt() {

try {

stmt.close();

} catch (SQLException e) {

e.printStackTrace();

} finally {

stmt = null;

}

}

public void closeConn() {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

} finally {

conn = null;

}

}

public void test_sql1() {

//excel的第一行作为列名,因此查询的结果是从第二行开始。

String sql = "select * from [sheet1$] where 专业名称='基础数学'";

this.createStatement();//创建Statement。

ResultSet rs = this.executeQuery(sql);

try {

while (rs.next()) {

//rs的起始索引为1,对应excel中第一列的值

System.out.println(rs.getString(3));

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

this.closeStmt();

this.closeConn();

}

public static void main(String args[]) {

ExcelConnection test = new ExcelConnection("test.xls");

test.test_sql1();

}

}

3.中文乱码

我的系统是windows_xp中文系统,excel是默认安装的office2003.

【问题描述】:

程序本身以UTF-8编码时:

运行程序后,得到的结果无论怎么转码都得不到中文。形式如:???&。

当尝试用new String(s.getBytes("UTF-8"),"GBK")时,有些仅能得到???学

【问题解决】:

将程序本身的编码定义为GBK,

则可以得到正确的中文值,而无需进行任何转码。

java odbc excel_利用odbc连接excel,解决中文乱码问题。相关推荐

  1. java解压多目录Zip文件(解决中文乱码问题)--转载

    原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.F ...

  2. js java base64,JavaScript BASE64算法实现(完美解决中文乱码)

    这篇文章主要介绍了JavaScript BASE64算法实现(完美解决中文乱码),先用escape()对中文进行编码.然后再进行base64编码. 解码时,再加入()对中文进行解码,这样就可以避免中文 ...

  3. url 参数传递中文乱码问题 即a href 利用 js 的 encodeURI解决中文乱码问题

    传入参数(含中文): jsp中 <a href="javascript:location.href='<%=basePath %>jsp/school/teacher.js ...

  4. Java案例:利用JDBC连接Oracle数据库

    Java案例:利用JDBC连接Oracle数据库 一.准备工作 1.启动SQL Developer,设置java.exe路径 2.在Oracle SQL Developer里,新建数据库连接 连接名: ...

  5. bug:生产问题,Golang解决csv文件用excel打开中文乱码问题及常见编码和BOM头关系

    bug:Golang解决csv文件用excel打开中文乱码问题 1 场景及分析 场景:今天在生成csv文件之后,测试发现用office和wps打开乱码 分析:经过测试之后发现使用记事本打开不乱码,同时 ...

  6. java txt中文乱码,JAVA读取TXT文件 可解决中文乱码问题

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  7. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...

  8. Java 按行读写文件(解决中文乱码)

    import java.io.*;public class EmployeeTest{EmployeeTest(){}// 按行读取文件public void readFile01(){try {Fi ...

  9. cocos2dx java 乱码_[cocos2d-x] --- 完美解决中文乱码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一 介绍 最近由于各种各样的原因,好长时间没有学习cocos2d-x了.突然有种害怕的感觉,这样下去,以前学的关于cocos2d-x的一点皮毛会彻底忘记的 ...

最新文章

  1. 赢在中国(08-02-27)
  2. 阿里云混合云的政企上云新路径
  3. p20pro 鸿蒙,后置镜头变液态双摄?华为P50Pro再曝光,搭载鸿蒙OS传感器变1寸
  4. JavaScript 新增两个原始数据类型
  5. android 进度条 代码,Android 进度条使用详解及示例代码
  6. Elasticsearch下安装ik分词器
  7. Service通信详解
  8. android源码查找测试demo
  9. android对接单片机wifi模块
  10. CVE-2017-8464 震网三代
  11. ChucK初步(12)
  12. 失眠怎样才能改善睡眠,五款助眠产品推荐让你拥有好睡眠
  13. 生病原来不是因为缺药,而是因为缺营养
  14. 梯度是什么,简单说梯度下降是什么
  15. java图片处理---Javax.imageIO包的用法
  16. Sigmoid 与 Softmax 的区别
  17. 01git创建本地仓库及操作入门
  18. 学习Python:StringIO与cStringIO
  19. 战地之王服务器维护启动失败,《战地之王》战地之王韩服官方各种问题攻略
  20. K8S云管平台开发实践 - 报警功能01

热门文章

  1. 谷歌开源能翻译101种语言的AI模型,只比Facebook多一种
  2. 洛谷Java入门级代码
  3. 提取了下刘汝佳推荐的题号...
  4. 怎么把PDF转换成Word?教你三分钟完成转换
  5. javascript 获得上个月、获取下个月日期
  6. 《塔木德智慧全书》(之三)
  7. 企业微信小程序开发(行事历)
  8. SAS(八)SAS之DATA步--文件操作语句
  9. 怎么样在Excel单元格里批量加小数点和单位?
  10. 双路由实现宽带和IPTV单播并存