2016-03-16 16 views
2

У меня есть столбец в Excel, который имеет следующие записи:Excel/CSV - Преобразование значения ключа в CSV

{property1 = неавтоматического, свойство2 = неавтоматического вне, Property3 = неавтоматического из}
{property1 = неавтоматического, свойство2 = неавтоматического вне, Property3 = неавтоматического из}
{property1 = неавтоматического, свойство2 = неавтоматического, Property3 = неавтоматического}

есть способ конвертировать его в csv или три отдельных столбца

property1, Properyty2, Property3
неавтоматического из, отказа, отказ в
неавтоматического, выбирают в, выбирают в
опт-аут, отказаться от, отказ в

+0

Конечно, есть способ. Кстати, некоторый уровень первоначального усилия в значительной степени ** ожидается ** от людей, просящих код. – Jeeped

+0

Нет, я не прошу ввести код. Я могу разобрать это, спасибо. Я ожидал, что смогу сделать это сам. –

+1

Анализ текста с использованием собственных функций excel работает только для статических чисел элементов. Если ваши данные samepl (JSON ..?) Действительно являются репрезентативными для ввода, тогда да, формула может быть построена для разбиения строк на столбцы. fwiw, подпрограмма VBA была бы лучше подходит, и у C#/VB.Net есть некоторые библиотеки JSON, которые могли бы сделать трюк. – Jeeped

ответ

2

Для демонстраций, поместите метки заголовков столбцов в некоторые неиспользуемые ячейки справа и используйте эту стандартную формулу непосредственно под первой.

=TRIM(LEFT(SUBSTITUTE(SUBSTITUTE(REPLACE($A1,1,SEARCH(C$1,$A1)+LEN(C$1),""),"}",","),",",REPT(" ",LEN($A1))), LEN($A1))) 

Заполните справа и вниз.

excel_split_json

1
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 
import java.io.UnsupportedEncodingException; 

import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 

public class ExcelReader { 

    public void excel(String input) { 
     // TODO Auto-generated method stub 
     try { 

      String S = "C:/Users/DELL/Desktop/workspace_luna/ecel dataload/" 
        + input; 
      String S1 = "C:/Users/DELL/Desktop/workspace_luna/ecel dataload/" 
        + input.substring(0, input.indexOf('.')) + ".xls"; 
      File f = new File(S); 

      @SuppressWarnings("resource") 
      OutputStream os = (OutputStream) new FileOutputStream(f); 

      String encoding = "UTF8"; 
      OutputStreamWriter osw = new OutputStreamWriter(os, encoding); 

      BufferedWriter bw = new BufferedWriter(osw); 

      File f2 = new File(S1); 

      Workbook w = Workbook.getWorkbook(f2); 

      for (int sheet = 0; sheet < w.getNumberOfSheets(); sheet++) { 
       Sheet s = w.getSheet(sheet); 



       Cell[] row = null; 


       for (int i = 0; i < s.getRows(); i++) { 


        row = s.getRow(i); 

        if (row.length > 0) { 

         bw.write(row[0].getContents()); 
         for (int j = 1; j < row.length; j++) { 
          bw.write("||"); 

          bw.write(row[j].getContents()); 
         } 
        } 

        bw.newLine(); 
       } 
      } 
      bw.flush(); 
      bw.close(); 
     } catch (UnsupportedEncodingException e) { 
      System.err.println(e.toString()); 
     } catch (IOException e) { 
      System.err.println(e.toString()); 
     } catch (Exception e) { 
      System.err.println(e.toString()); 
     } 
    } 

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