⑴ 請問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();
}
}
}