Maison > Java > javaDidacticiel > Exemple de code Java pour convertir Excel en txt et vice versa

Exemple de code Java pour convertir Excel en txt et vice versa

Y2J
Libérer: 2017-05-08 15:46:35
original
1509 Les gens l'ont consulté

本篇文章主要介绍了java实现excel和txt文件互转的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧

话不多说,请看代码:

import java.io.*; 
import jxl.*; 
import jxl.write.*; 

//用java将txt数据导入excel
public class CreateXLS 
{ 
public static void main(String args[]) 
{ 
 try 
 { 
   //打开文件 
   WritableWorkbook book= Workbook.createWorkbook(new File("测试.xls")); 
   //生成名为“第一页”的工作表,参数0表示这是第一页 
   WritableSheet sheet=book.createSheet("第一页",0); 
   //在Label对象的构造子中指名单元格位置是第一列第一行(0,0) 
   //以及单元格内容为test 
   Label label=new Label(0,0,"test"); 
   //将定义好的单元格添加到工作表中 
   sheet.addCell(label); 
   /*生成一个保存数字的单元格 
    必须使用Number的完整包路径,否则有语法歧义 
    单元格位置是第二列,第一行,值为789.123*/ 
   jxl.write.Number number = new jxl.write.Number(1,0,789.123); 
   sheet.addCell(number); 
   //写入数据并关闭文件 
   book.write(); 
   book.close(); 
  }catch(Exception e) 
  { 
   System.out.println(e); 
  } 
 } 
}
Copier après la connexion
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

//用java将excel数据导入txt

public class WriteTxt {

public static void main(String[] args) { 
// TODO Auto-generated method stub 
String filepath = "d:\\demo.xls"; 

try { 
Workbook workbook = Workbook.getWorkbook(new File(filepath)); 
Sheet sheet = workbook.getSheet(0); 
File file = new File("d:/1.txt");
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
// j为行数,getCell("列号","行号") 
int j = sheet.getRows();
int y = sheet.getColumns();
for (int i = 0; i < j; i++) { 
for(int x=0; x<y; x++){
Cell c = sheet.getCell(x, i); 
String s = c.getContents(); 
bw.write(s);
bw.write(" ");
bw.flush();
}
bw.newLine();
bw.flush();
} 
System.out.println("写入结束");
} catch (BiffException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
}
Copier après la connexion

遇到的问题:

txt文件中单元格数据之间用|分割,用string.split("\\|");提取数据      

用的jar包对excel2007不支持 从而导致转换出的是空文件

excel文件转txt文件时,用tab键分隔 分隔字符串数组时用String.split("\\  ",-1);

上线遇到的问题:

1.在windows上获取路径地址是以\分隔的,而在linux上获取的路径是以/分隔的,这要注意

2.默认情况下,Excel中每个单元格所能显示的数字为11位,输入超过11位的数值,系统自动将其转换为科学记数格式,当txt转excel时,有两种方法可以解决这个问题,第一种是在单元格数字前加个单引号,第二种是设置单元格的格式为文本格式,在上述代码中加入以下代码

WritableFont wf = new WritableFont(WritableFont.TIMES,12,WritableFont.NO_BOLD,false);
WritableCellFormat wcfF = new WritableCellFormat(NumberFormats.TEXT);
wcfF.setFont(wf);
CellView cv = new CellView();
cv.setFormat(wcfF);
cv.setSize(10*265);
sheet.setColumnView(j, cv);
Label label = new Label(j,n,s1[j]);
sheet.addCell(label);
Copier après la connexion

3. 当txt转excel在windows上转换成功时,到linux服务器上转出的excel中汉字变成了乱码,因为FileWriter fw = new FileWriter(file);这句代码采用默认字符集解析,经过尝试,使用GBK解析文件,用以下代码可不出现乱码,

BufferedReader bw = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filen)),"GBK"));
Copier après la connexion

【相关推荐】

1. Java免费视频教程

2. 全面解析Java注解

3. 阿里巴巴Java开发手册

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal