java怎么获取远程带参数的excel文件

java怎么获取远程带参数的excel文件,第1张

有个开源的东东-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写代码实现,求代码方法。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9817527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存