Member 13746934 Ответов: 0

Как мне...записать данные в csv-файл


хай,я могу записывать данные в блокнот, но не печатать в excel, пожалуйста, помогите мне выйти из этой ошибки
Класс сотрудников:
public class Employee  {
										
        private String LeftKey3;
		private String LeftKey2;
		private String RelationTypeUniqueName;
		private String RightKey2;
		private String LeftKey1;
	    private String RightKey1;
	    private String RightKey3;
	    private String RightId;
	    private String LeftId;
	   

	    public String getLeftKey3() {
	        return LeftKey3;
	    }
	    public void setLeftKey3(String LeftKey3) {
			this.LeftKey3 = LeftKey3;
		}
	    public String getLeftKey2() {
	        return LeftKey2;
	    }
	    public void setLeftKey2(String LeftKey2) {
			this.LeftKey2 = LeftKey2;
		}
	    public String getRelationTypeUniqueName() {
	        return RelationTypeUniqueName;
	    }
	    public void setRelationTypeUniqueName(String RelationTypeUniqueName) {
			this.RelationTypeUniqueName =RelationTypeUniqueName;
		}
	    public String getRightKey2() {
	        return RightKey2;
	    }
	    public void setRightKey2(String RightKey2) {
			this.RightKey2 =RightKey2;
		}

	    public  String getLeftKey1() {
	        return LeftKey1;
	    }
	    public void setLeftKey1(String LeftKey1) {
			this.LeftKey1 =LeftKey1;
		}
	    public String getRightKey1() {
	        return RightKey1;
	    }
	    public void setRightKey1(String RightKey1) {
			this.RightKey1 = RightKey1;
		}
	    public String getRightKey3() {
	        return RightKey3;
	    }
	    public void setRightKey3(String RightKey3) {
			this.RightKey3 = RightKey3;
		}
	    public String getRightId() {
	        return RightId;
	    }
	    public void setRightId(String RightId) {
			this.RightId = RightId;
		}
	    public String getLeftId() {
	        return LeftId;
	    }
	    public void setLeftId(String LeftId) {
			this.LeftId= LeftId;
		}
	    
	   /* public Employee(String LeftKey3,String LeftKey2,String RelationTypeUniqueName,String RightKey2,String LeftKey1,String RightKey1,String RightKey3,String RightId,String LeftId) {
	        this.LeftKey3 = LeftKey3;
	        this.LeftKey2 = LeftKey2;
	        this.RelationTypeUniqueName = RelationTypeUniqueName;
	        this.RightKey2 = RightKey2;
	        this.LeftKey1 = LeftKey1;
	        this.RightKey1 = RightKey1;
	        this.RightKey3 = RightKey3;
	        this.RightId = RightId;
	        this.LeftId =LeftId;
	    }
*/
	   
	    

public static Comparator<Employee> employeeNameComparator = new Comparator<Employee>() {
	public int compare(Employee  employee1, Employee  employee2) {

String rightKey1 =  employee1.getRightKey1();
String rightKey2 =  employee2.getRightKey1();
if(rightKey1.contains("|") && rightKey2.contains("|"))
{
	int firstemp= Integer.parseInt(rightKey1.substring(0,rightKey1.indexOf('|')));
	int secondemp= Integer.parseInt(rightKey2.substring(0,rightKey2.indexOf('|')));

	if(firstemp<secondemp)
	{
		return -1;
	}
	else if (firstemp>secondemp)
	{
		return 1;
	} else
	{
		return 0;
	}
}
else
{
	return rightKey1.compareTo( rightKey2);
}

}

	   };	
	    

	  
		
		
	    public String toString() {
	        return "\n" + this.LeftKey3 + ", " + this.LeftKey2+ ", " + this.RelationTypeUniqueName + ", " +
	        		this.RightKey2 + ","+ this.LeftKey1 +","+ this.RightKey1 +","+ this.RightKey3 +","+ this.RightId  +","+ this.LeftId +"";
	    }
		

	}

What I have tried:

<pre> private static final String NEW_LINE_SEPARATOR = "\n";
    private static final String [] VENDORSUBSIDARY_REPLACE= {"LeftKey3","LeftKey2","RelationType.UniqueName","RightKey2","LeftKey1","RightKey1","RightKey3","RightId","LeftId"};
    private static final String [] VENDORCURRENCY_HEADERS={"LeftKey3","LeftKey2","RelationType.UniqueName","RightKey2","LeftKey1","RightKey1","RightKey3","RightId","LeftId"};
     
    public static void main(String args[])throws IOException
    {
    	

        BufferedReader br = null;
        CSVPrinter csvFilePrinter = null;
        FileWriter fileWriter = null;
      
    	
        String replacecurrencycodeFile = "C:/Users/Desktop/newsample.csv";
        try
        {
        	CSVFormat csvFileFormat = CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR);
		    fileWriter = new FileWriter( replacecurrencycodeFile);
		    csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);
		    csvFilePrinter.printRecord(VENDORSUBSIDARY_REPLACE);
		           //Reading the csv file
            br = new BufferedReader(new FileReader("C:/Users/Desktop/Internalid1.csv"));
            
            //Create List for holding Employee objects
            List<employee> empList = new ArrayList<employee>();
            
            String line = "";
            //Read to skip the header
            br.readLine();

						
            //Reading from the second line
            while ((line = br.readLine()) != null) 
            {
              String[] employeeDetails = line.split(",");
                
                if(employeeDetails.length != 0 )
                {
                    //Save the employee details in Employee object
                    Employee emp = new Employee(employeeDetails[0], employeeDetails[1],employeeDetails[2],employeeDetails[3],employeeDetails[4],employeeDetails[5],employeeDetails[6],employeeDetails[7],employeeDetails[8]);
                    empList.add(emp);
                }
            }
            Collections.sort(empList,Employee.employeeNameComparator );
            //Lets print the Employee List
            for(Employee e : empList)
            {
               //System.out.println(e.getLeftKey3()+"  "+e.getLeftKey2()+"  "+e.getRelationTypeUniqueName()+" "+e.getRightKey2()+" "+e.getLeftKey1()+" "+e.getRightKey1()+" "+e.getRightKey3()+" "+e.getRightId()+" "+e.getLeftId());
            System.out.println(e);	
            csvFilePrinter.printRecord(e);
           
                		
            }
           
            
            System.out.println("done");
            br.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fileWriter.flush();
                fileWriter.close();
                csvFilePrinter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        }

Jochen Arndt

На этот вопрос нельзя ответить, не зная о реализации класса Employee, поскольку он определяет, какая перегрузка CSVPrinter.printRecord() в конечном итоге используется.

[РЕДАКТИРОВАТЬ]
Просто заметил, что вы также используете имя класса "employee" для списка, но "Employee" для значений, которые будут добавлены в список!
[/РЕДАКТИРОВАТЬ]

Member 13746934

Я добавил данные класса сотрудника пожалуйста пройдите через него

Jochen Arndt

Существует две перегрузки для функции CSVPrinter.printRecord (), где здесь применяется та, которая принимает объект, и ваш класс содержит необходимый метод toString (). Но это предшествует строке с новой строкой, что, вероятно, не то, что вы хотите, потому что printRecord() добавляет ее так, чтобы у вас были пустые строки между записями.

Однако что же не работает?
Есть ли у вас ошибки компиляции, ошибки времени выполнения или выходные данные просто не такие, как ожидалось?

Это должно вызвать ошибку компиляции (как уже отмечалось):
List<employee> empList = new ArrayList<employee>();

0 Ответов