Excel/CSV-将键值转换为CSV

Excel/CSV-将键值转换为CSV,excel,csv,export-to-csv,Excel,Csv,Export To Csv,我在Excel中有一列记录如下: {Property1=选择加入,Property2=选择退出,Property3=选择退出} {Property1=选择加入,Property2=选择退出,Property3=选择退出} {Property1=opt-in,Property2=opt-in,Property3=opt-in} 有没有办法将其转换为csv或三个单独的列 物业1、物业2、物业3 选择退出,选择退出,选择加入 选择加入,选择加入,选择加入 选择退出,选择退出,选择加入 为了便于演示,请

我在Excel中有一列记录如下:

{Property1=选择加入,Property2=选择退出,Property3=选择退出}
{Property1=选择加入,Property2=选择退出,Property3=选择退出}
{Property1=opt-in,Property2=opt-in,Property3=opt-in}

有没有办法将其转换为csv或三个单独的列

物业1、物业2、物业3
选择退出,选择退出,选择加入
选择加入,选择加入,选择加入
选择退出,选择退出,选择加入


为了便于演示,请将列标题标签放在右侧一些未使用的单元格中,并在第一个单元格的正下方使用此标准公式

=TRIM(LEFT(SUBSTITUTE(SUBSTITUTE(REPLACE($A1,1,SEARCH(C$1,$A1)+LEN(C$1),""),"}",","),",",REPT(" ",LEN($A1))), LEN($A1)))
从右到下填充

导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.io.UnsupportedEncodingException;
进口jxl.Cell;
进口jxl.Sheet;
导入jxl.工作簿;
公共课优秀读者{
公共作废excel(字符串输入){
//TODO自动生成的方法存根
试一试{
String S=“C:/Users/DELL/Desktop/workspace\u luna/ecel dataload/”
+输入;
String S1=“C:/Users/DELL/Desktop/workspace\u luna/ecel dataload/”
+input.substring(0,input.indexOf('.')+“.xls”;
文件f=新文件;
@抑制警告(“资源”)
OutputStream os=(OutputStream)新文件OutputStream(f);
字符串编码=“UTF8”;
OutputStreamWriter osw=新的OutputStreamWriter(操作系统,编码);
BufferedWriter bw=新的BufferedWriter(osw);
文件f2=新文件(S1);
工作簿w=Workbook.getWorkbook(f2);
对于(int sheet=0;sheet0){
write(行[0].getContents());
对于(int j=1;j
肯定有办法。顺便说一句,要求代码的人很可能会做出某种程度的原创努力。不,我不是在要求代码。我可以解析,谢谢。我希望有一种在excel中实现的方法。使用本机excel函数进行文本解析只适用于静态数量的项。如果samepl(JSON..?)数据真正代表输入,那么可以构造一个公式将行拆分为列。fwiw,VBA子过程更合适,C#/VB.Net有一些JSON库可以实现这一点。这不是真正的答案,但您可以使用
文本到列
功能,使用
=
作为分隔符-这将为您提供所需的3列以及3个标题,每个标题位于一个单独的列中,您可以轻松删除。。。更像是一种黑客行为,但它会起作用。
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());
        }
    }

}