⑴ 请问poi可不可以直接操作csv文件呢在哪里可以看出它是否支持呢请大神赐教,感激不尽~~
不太清楚 ,没用过,你可以直接液乱慎查它的英文版api(网络第一个就是),我操作csv用的是javacsv网络的陪衫到,很简单。闹敬
⑵ java如何用FileIputStream按行读取csv文件 求代码
是要来用BufferedReader来读取一行自,
判断不好,
用
while (br.ready()) {
str = br.readLine();
System.out.println(str);
}
解析的话,用str.split(",");
注意编辑的转换,
基本就这些了。
⑶ java读取CSV文件
可以通过流的形式读取到所有内容,之后在转换成元素的形式进行实现。举例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;
public class Test{
public static void main(String[] args) {
Hashtable<String, String[]> dict = new Hashtable<String, String[]>();
try {
BufferedReader reader = new BufferedReader(new FileReader("test.csv"));
String line = null;
while((line=reader.readLine())!=null){
String item[] = line.split(",");
String item2[] = new String[19];
System.array(item,1,item2,0,19);
dict.put(item[0],item2);
}
Enumeration e2 = dict.keys();
while (e2.hasMoreElements()) {
String key = (String) e2.nextElement();
System.out.println(key);
String[] dd = (String[])dict.get(key);
for (int i=0;i<dd.length;i++) {
System.out.print(dd[i]+"\t");
}
System.out.println();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
⑷ java 读取csv文件里指定行列的值,比如读取第三行第二列的值。
import java.io.BufferedReader;
import java.io.FileReader;
public class Test {
public void test(int row,int col){
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\a.csv"));//换成你的文件名
// reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String line = null;
int index=0;
while((line=reader.readLine())!=null){
String item[] = line.split(" ");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
if(index==row-1){
if(item.length>=col-1){
String last = item[col-1];//这就是你要的数据了
System.out.println(last);
}
}
//int value = Integer.parseInt(last);//如果是数值,可以转化为数值
index++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Test test = new Test();
test.test(3, 2);
}
}
你的数据格式有问题,空格的个数不确定,没办法每行用空格分隔。以下是我调整后的数据格式每行的数据以一个空格分隔,test方法传入的参数一次是,行,列:
1电机1
2WBS2
3PID3
4CP
5社供出
6原価実绩
7社供WC
8外注费
9直材费
10自家制品
11直経费
12その他
13注残
14注残
⑸ 写出一个Java程序,读取该CSV文件,并且按照部门字段分组,最后打印出来,打印结果如下:
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.util.ArrayList;
publicclassSort{
publicstaticvoidmain(String[]args)throwsException{
ArrayList<String>list=newArrayList<String>();
Filefile=newFile("data.csv");//这里填你的csv文件的路径
BufferedReaderfr=newBufferedReader(newFileReader(file));
Strings=null;
while((s=fr.readLine())!=null){
list.add(s);
}
fr.close();
list=sort(list);
for(Stringstr:list){
System.out.println(str);
}
}
publicstaticArrayList<String>sort(ArrayList<String>list){
Stringstr1=null;
Stringstr2=null;
intflag=0;
intsize=list.size();
for(inti=0;i<list.size()-1;i++){
for(intj=0;j<size-1;j++){
str1=list.get(j);
str2=list.get(j+1);
flag=getDept(str1).compareToIgnoreCase(getDept(str2));
if(flag>=0){
list.set(j,str2);
list.set(j+1,str1);
}
}
size-=1;
}
returnlist;
}
publicstaticStringgetDept(Stringstr){
String[]array=str.split(",");
returnarray[3];
}
}
⑹ 用java怎么把指定的csv文件,写到指定的excel的sheet里
先通过通过java里面的io一行一行的读出来,
再用循环通过split分割,一行里面的一个一个数据应该有什么符号分割,我见过的是逗号,
分割出来的数据你可以把它们放在一个一个培渗数组里面,
最后用poi写入到excel里面
packagecom.poi;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
importjava.util.List;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
publicclassCsvToExcel{
publicstaticvoidmain(String[]args)throwsIOException{
//读取csv文仿吵件
BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(newFile("d:\1.csv")),"GBK"));
Stringline;
//创建结果集,泛型可以根据实际情况定
List<List<String>>dataList=newArrayList<List<String>>();
while((line=br.readLine())!=null){
line=line.replace(""","");
String[]split=line.split(",");
List<String>t=newArrayList<String>();
for(inti=0;i<split.length;i++){
t.add(split[i]);
}
dataList.add(t);
}
//使用poi导出excel,poi是通过循环的方式创建行和单元格
//声明一个工作薄
配大脊HSSFWorkbookwb=newHSSFWorkbook();
//声明一个单子并命名
HSSFSheetsheet=wb.createSheet("测试");
//给单子名称一个长度
sheet.setDefaultColumnWidth((short)15);
for(inti=0;i<dataList.size();i++){
//创建行
HSSFRowrow=sheet.createRow(i);
List<String>list=dataList.get(i);
for(intj=0;j<list.size();j++){
//创建单元格
HSSFCellcell=row.createCell(j);
cell.setCellValue(list.get(j));
}
}
//写入到文件里面
FileOutputStreamout=newFileOutputStream("D://测试.xls");
wb.write(out);
out.close();
}
}
这是我用的jar包,只是用到一些个,姑且全部build path了
⑺ 求做一个Java程序,能读入一个csv文件,并且能把csv文件里面的内容倒序读取出来,代码求注释要不看不懂,
回答完毕,采纳即可。
importjava.io.File;
importjava.util.Scanner;
publicclassYuGiOh
{
privatestaticfinalStringLINE=System.getProperty("line.separator");
privatestaticfinalStringFILE="Book1.csv";
privatestaticStringreadFile(Stringfile)
{
Stringresult="";
Scannerscanner=null;
StringBuilderbuilder=newStringBuilder();
try
{
scanner=newScanner(newFile(file));
while(scanner.hasNextLine())
{
builder.delete(0,builder.capacity()-1);
Stringline=scanner.nextLine();
result=LINE+builder.append(line).reverse().toString()+result;
}
}
catch(Exceptionignore)
{}
finally
{
if(null!=scanner)
{
scanner.close();
}
}
returnresult;
}
publicstaticvoidmain(String[]arg)
{
Stringresult=readFile(FILE);
System.out.println(result);
}
}
⑻ java读取csv写入数据库
使用opencsv读到、、、、、使用jdbc存储数据库
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
⑼ 如何用java解析CSV文件
思想:先获取csv文件的路径,通过BufferedReader类去读该路径中的文件,使用readLine方法进行逐行读取。
注意:使用readLine方法后会自动转到下一行。因此在判断是否为空后得先将读取到的内容赋值给一变量,在循环中使用该变量即可。
publicstaticvoidmain(String[]args)
{
Filecsv=newFile("C:\Users\chenxumin\Desktop\Result.csv");//CSV文件路径
BufferedReaderbr=null;
try
{
br=newBufferedReader(newFileReader(csv));
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
Stringline="";
StringeveryLine="";
try{
List<String>allString=newArrayList<>();
while((line=br.readLine())!=null)//读取到的内容给line变量
{
everyLine=line;
System.out.println(everyLine);
allString.add(everyLine);
}
System.out.println("csv表格中所有行数:"+allString.size());
}catch(IOExceptione)
{
e.printStackTrace();
}
}
⑽ java读取csv文件
importjava.io.BufferedReader;
importjava.io.FileReader;
importjava.util.*;
publicclassTest{
publicstaticvoidmain(String[]args){
Hashtable<String,String[]>dict=newHashtable<String,String[]>();
try{
BufferedReaderreader=newBufferedReader(newFileReader("test.csv"));
Stringline=null;
while((line=reader.readLine())!=null){
Stringitem[]=line.split(",");
Stringitem2[]=newString[19];
System.array(item,1,item2,0,19);
dict.put(item[0],item2);
}
Enumeratione2=dict.keys();
while(e2.hasMoreElements()){
Stringkey=(String)e2.nextElement();
System.out.println(key);
String[]dd=(String[])dict.get(key);
for(inti=0;i<dd.length;i++){
System.out.print(dd[i]+" ");
}
System.out.println();
}
}
catch(Exceptione){
e.printStackTrace();
}
}
}