2013-04-29 3 views
1

Я работаю над проектом, где мне нужно прочитать строку из файла excel и записать ее в файл csv вместе с последовательностью.Ввод строки в файл csv без изменения

Вот мой код:

private void readExcelSheet(String inputFile){ 
//Method to read the input file 
    File excelSheet = new File(inputFile);    
    set1=new LinkedHashSet<String>(); 
    InputStream inp = null; 
    try { 
     inp = new FileInputStream(excelSheet); 
     wb =WorkbookFactory.create(inp); 
     for(int sheetNo=0; sheetNo<wb.getNumberOfSheets();sheetNo++) 
     { //counter5++; 
      System.out.println(sheetNo); 
      map1=new LinkedHashMap<String,ArrayList<String>>(); 
      Sheet sheet = wb.getSheetAt(sheetNo); 
      Iterator<Row> rowIterator = sheet.iterator(); 
      while(rowIterator.hasNext()) { 
       Row row = rowIterator.next(); 
       //array1=new ArrayList<String>(); 
       temp=row.getCell(0).getStringCellValue(); 
       System.out.println(temp); 
       inputInto(temp); 
      } 
     } 
    }catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
} 

public void inputInto(String temp1) throws IOException{ 
    FileWriter writer = new FileWriter(fileName,true); 
    PrintWriter out = new PrintWriter(writer); 
    out.append("\""+temp+"\""); 
    out.append(","); 
    out.append((countLines()+1)+""); 
    System.out.println(countLines()+1); 
    out.append("\n"); 
    out.flush(); 
} 

public int countLines() throws IOException { 
    LineNumberReader reader = new LineNumberReader(new FileReader(fileName)); 
    int cnt = 0; 
    String lineRead = ""; 
    while ((lineRead = reader.readLine()) != null) {} 
    cnt = reader.getLineNumber(); 
    reader.mark(0); 
    reader.reset(); 
    reader.close(); 
    return cnt; 
} 

public static void main(String[] args){ 
    Token token=new Token(); 
    token.readExcelSheet("D:/Workspace/sample.xlsx"); 
} 

Здесь readExcelSheet метод для чтения ввода Excel лист
inputInto метод писать в CSV-файл
батончиков является метод, чтобы найти последнюю строку номер, чтобы найти последовательность.

но когда я пытаюсь запустить мой код в первый раз, я получаю последовательность как '1' , и когда я запускаю ее во второй раз, я получаю последовательность как '11' и 23 и вскоре.

Вот мой вклад:.

«Горизонт Зубные планы Вариант предлагают свободу получить стоматологические услуги от любого стоматолога, позволяя членам, чтобы сэкономить деньги и максимизируют выгоды, выбирая стоматологи в нашей большой общенациональной сети
Horizon Dental Option Plans предлагает: • Гибкость трех уровней выигрыша • Снижение затрат на карман и более высокие преимущества при использовании стоматологов, которые участвуют в Horizon Dental Option Plan • Доступ к общенациональной сети из более чем 136 000 участвующих стоматологов • Скидки от 10 до 30 процентов с внутренней сетью d включает • Профилактические стоматологические услуги покрывают 100% разрешенных расходов • Варианты ежегодной вычеты • Возможность выхода из сети; франшизы и сострахование могут применяться Для получения дополнительной информации загрузите данные плана.
Для получения дополнительной информации загрузите детали плана.»

Может кто-нибудь, пожалуйста, помогите мне с этим. спасибо ..

+0

Вы могли бы попытаться удалить вывод и запустить Код снова? что происходит тогда? – smttsp

ответ

0

Я думаю, ваша ошибка

FileWriter writer = new FileWriter(fileName,true); 

Когда вы говорите true, выход файл не удаляется во втором вызове, java пишет на нем. Просто удалите true в этой строке, тогда он будет работать, я думаю.

+0

Мой проект требует ввода похожих файлов. поэтому я не должен создавать новый файл каждый раз. Я хочу добавить существующий файл. – user2243525

+0

Что вы хотите получить, что получаете? – smttsp

+0

Предположим, что есть три листа excel. Я хочу, чтобы эти листы excel были введены в мой файл csv. и o/p должны быть в виде строки ввода таблицы сообщений1 1 inputofexcelsheet2 2 и т. д. – user2243525

Смежные вопросы