有个开源的东东-jxljar,可以到下载。
一读取Excel文件内容
/读取Excel文件的内容
@param file 待读取的文件
@return
/
public static String readExcel(File file){
StringBuffer sb = new StringBuffer();
Workbook wb = null;
try {
//构造Workbook(工作薄)对象
wb=WorkbookgetWorkbook(file);
} catch (BiffException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
if(wb==null)
return null;
//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet = wbgetSheets();
if(sheet!=null&&sheetlength>0){
//对每个工作表进行循环
for(int i=0;i<sheetlength;i++){
//得到当前工作表的行数
int rowNum = sheet[i]getRows();
for(int j=0;j<rowNum;j++){
//得到当前行的所有单元格
Cell[] cells = sheet[i]getRow(j);
if(cells!=null&&cellslength>0){
//对每个单元格进行循环
for(int k=0;k<cellslength;k++){
//读取当前单元格的值
String cellValue = cells[k]getContents();
sbappend(cellValue+" ");
}
}
sbappend(" ");
}
sbappend(" ");
}
}
//最后关闭资源,释放内存
wbclose();
return sbtoString();
}
二写入Excel文件
这里有很多格式了,比如文本内容加粗,加上某些颜色等,可以参考jxl的api,同时还推荐一篇不错的文章:
/生成一个Excel文件
@param fileName 要生成的Excel文件名
/
public static void writeExcel(String fileName){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = WorkbookcreateWorkbook(new File(fileName));
} catch (IOException e) {
eprintStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwbcreateSheet("sheet1", 0);
//下面开始添加单元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//将生成的单元格添加到工作表中
wsaddCell(labelC);
} catch (RowsExceededException e) {
eprintStackTrace();
} catch (WriteException e) {
eprintStackTrace();
}
}
}
try {
//从内存中写入文件中
wwbwrite();
//关闭资源,释放内存
wwbclose();
} catch (IOException e) {
eprintStackTrace();
} catch (WriteException e) {
eprintStackTrace();
}
}
}
三在一个Excel文件中查找是否包含某一个关键字
/搜索某一个文件中是否包含某个关键字
@param file 待搜索的文件
@param keyWord 要搜索的关键字
@return
/
public static boolean searchKeyWord(File file,String keyWord){
boolean res = false;
Workbook wb = null;
try {
//构造Workbook(工作薄)对象
wb=WorkbookgetWorkbook(file);
} catch (BiffException e) {
return res;
} catch (IOException e) {
return res;
}
if(wb==null)
return res;
//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet = wbgetSheets();
boolean breakSheet = false;
if(sheet!=null&&sheetlength>0){
//对每个工作表进行循环
for(int i=0;i<sheetlength;i++){
if(breakSheet)
break;
//得到当前工作表的行数
int rowNum = sheet[i]getRows();
boolean breakRow = false;
for(int j=0;j<rowNum;j++){
if(breakRow)
break;
//得到当前行的所有单元格
Cell[] cells = sheet[i]getRow(j);
if(cells!=null&&cellslength>0){
boolean breakCell = false;
//对每个单元格进行循环
for(int k=0;k<cellslength;k++){
if(breakCell)
break;
//读取当前单元格的值
String cellValue = cells[k]getContents();
if(cellValue==null)
continue;
if(cellValuecontains(keyWord)){
res = true;
breakCell = true;
breakRow = true;
breakSheet = true;
}
}
}
}
}
}
//最后关闭资源,释放内存
wbclose();
return res;
}
四往Excel中插入图标
插入的实现很容易,参看以下代码:
/往Excel中插入
@param dataSheet 待插入的工作表
@param col 从该列开始
@param row 从该行开始
@param width 所占的列数
@param height 所占的行数
@param imgFile 要插入的文件
/
public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
int height, File imgFile){
WritableImage img = new WritableImage(col, row, width, height, imgFile);
dataSheetaddImage(img);
}
以上代码的注释已经很清楚了,大概也就不用再解释了,我们可以用如下程序验证:
try {
//创建一个工作薄
WritableWorkbook workbook = WorkbookcreateWorkbook(new File("D:/test1xls"));
//待插入的工作表
WritableSheet imgSheet = workbookcreateSheet("Images",0);
//要插入的文件
File imgFile = new File("D:/1png");
//插入到第二行第一个单元格,长宽各占六个单元格
insertImg(imgSheet,0,1,6,6,imgFile);
workbookwrite();
workbookclose();
} catch (IOException e) {
eprintStackTrace();
} catch (WriteException e) {
eprintStackTrace();
}
但是jxl只支持png格式的,jpg格式和gif格式都不支持
五插入页眉页脚
一般的页眉页脚都分为三个部分,左,中,右三部分,利用如下代码可实现插入页眉页脚
/向Excel中加入页眉页脚
@param dataSheet 待加入页眉的工作表
@param left
@param center
@param right
/
public static void setHeader(WritableSheet dataSheet,String left,String center,String right){
HeaderFooter hf = new HeaderFooter();
hfgetLeft()append(left);
hfgetCentre()append(center);
hfgetRight()append(right);
//加入页眉
dataSheetgetSettings()setHeader(hf);
//加入页脚
//dataSheetgetSettings()setFooter(hf);
}
我们可以用如下代码测试该方法:
try {
//创建一个工作薄
WritableWorkbook workbook = WorkbookcreateWorkbook(new File("D:/test1xls"));
//待插入的工作表
WritableSheet dataSheet = workbookcreateSheet("加入页眉",0);
ExcelUtilssetHeader(dataSheet, "chb", "2007-03-06", "第1页,共3页");
workbookwrite();
workbookclose();
} catch (IOException e) {
eprintStackTrace();
} catch (WriteException e) {
eprintStackTrace();
}
六偷懒工具设计之sql2Excel
今天在公司陪山东客户调试,远程登录,我在linux下什么工具都没有,用ssh登录服务器,直接用mysql查询数据库,提出记录中的所有汉字全是乱码。哎,可恶的公司,不让我用windows,要不我就可以用putty或者EMS了,我ft!
甚是不爽之下,我决定自己写个工具了,把客户数据库中的数据全部提取并保存到Excel中,这样我不就可以一目了然了嘛,嘿嘿,好吧,那我就写一个工具吧。
第一部分就是谁都会的jdbc *** 作,连接数据库,提取数据集合。
Connection con;
Statement state;
/初始化连接
@param serverIp
@param dataBase
@param userName
@param password
@throws ClassNotFoundException
@throws SQLException
/
public void init(String serverIp,String dataBase,String userName,String password) throws ClassNotFoundException, SQLException{
ClassforName("commysqljdbcDriver");
//配置数据源
String url="jdbc:mysql://"+serverIp+"/"+dataBase+"useUnicode=true&characterEncoding=GB2312";
con=DriverManagergetConnection(url,userName,password);
}
/得到查询结果集
@param sql
@return
@throws SQLException
/
public ResultSet getResultSet(String sql) throws SQLException{
state = concreateStatement();
ResultSet res = stateexecuteQuery(sql);
return res;
}
/关闭连接
@throws SQLException
/
public void close() throws SQLException{
if(con!=null)
conclose();
if(state!=null)
stateclose();
}
第二部分就是把ResultSet中的记录写入一个Excel文件
*** 作Excel,我用的是jxl,不熟的同学可以参考:利用java *** 作Excel文件
/将查询结果写入Excel文件中
@param rs
@param file
@throws SQLException
/
public void writeExcel(ResultSet rs,File file) throws SQLException{
WritableWorkbook wwb = null;
try{
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = WorkbookcreateWorkbook(file);
} catch (IOException e){
eprintStackTrace();
}
if(wwb!=null){
WritableSheet ws = wwbcreateSheet("sheet1", 0);
int i=0;
while(rsnext()){
Label label1 = new Label(0, i, rsgetString("id"));
Label label2 = new Label(1, i, rsgetString("category"));
try {
wsaddCell(label1);
wsaddCell(label2);
} catch (RowsExceededException e) {
eprintStackTrace();
} catch (WriteException e) {
eprintStackTrace();
}
i++;
}
try {
//从内存中写入文件中
wwbwrite();
//关闭资源,释放内存
wwbclose();
} catch (IOException e) {
eprintStackTrace();
} catch (WriteException e){
eprintStackTrace();
}
}
}
测试程序:
Sql2Excel se = new Sql2Excel();
try {
seinit("127001","mydabase", "root", "1234");
ResultSet rs = segetResultSet("select id,category from xx ");
sewriteExcel(rs, new File("/root/sql2excelxls"));
seclose();
} catch (ClassNotFoundException e) {
eprintStackTrace();
} catch (SQLException e) {
eprintStackTrace();
}
/
读取某个文件夹下的所有文件
/
public static boolean readfile(String filepath) throws FileNotFoundException, IOException {
try {
File file = new File(filepath);
if (!fileisDirectory()) {
Systemoutprintln("文件");
Systemoutprintln("path=" + filegetPath());
Systemoutprintln("absolutepath=" + filegetAbsolutePath());
Systemoutprintln("name=" + filegetName());
} else if (fileisDirectory()) {
Systemoutprintln("文件夹");
String[] filelist = filelist();
for (int i = 0; i < filelistlength; i++) {
File readfile = new File(filepath + "\\" + filelist[i]);
if (!readfileisDirectory()) {
Systemoutprintln("path=" + readfilegetPath());
Systemoutprintln("absolutepath="
+ readfilegetAbsolutePath());
Systemoutprintln("name=" + readfilegetName());
} else if (readfileisDirectory()) {
readfile(filepath + "\\" + filelist[i]);
}
}
}
} catch (FileNotFoundException e) {
Systemoutprintln("readfile() Exception:" + egetMessage());
}
return true;
}
你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运~!
//创建一个ftpclient对象
FTPClient fc=new FTPClient();
//创建连接
fcconnect("ip地址", 端口号);
//登录
fclogin("用户名","密码");
//校验登陆
reply = fcgetReplyCode();
if (!FTPReplyisPositiveCompletion(reply)) {
fcdisconnect();
}
//切换到指定地址
fcchangeWorkingDirectory("地址");
//获取该目录下的所有文件
FTPFile[] fs=fclistFiles();
for(FTPFile ff:fs){
Systemoutprintln(ffgetName());
}
//注销退出
fclogout();
以上就是关于java怎么获取远程带参数的excel文件全部的内容,包括:java怎么获取远程带参数的excel文件、java 怎么通过url获取远程服务器上某个文件夹下的所有文件名、现在写一个安卓app,需要从远程oracle数据库中获取信息并显示在app里,要用Java写代码实现,求代码方法。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)