使用顶点导入Excel

问题描述 投票:0回答:1

我遇到了顶点问题:我创建了一个允许我加载CSV文件的对话框。但是,当我加载它时,它返回以下错误消息:

09:17:41:021 VARIABLE_ASSIGNMENT [19] | e |“common.apex.runtime.impl.ExecutionException:BLOB不是有效的UTF-8字符串”| 0x72d1bdb2

在CSV文件中,有“ - ”和“_”等符号。我怀疑这就是它无法加载的原因。

这是我的代码:

public class ImportExcel {  
    public String fileName {get; set;}
    public Blob contentFile {get; set;}
    public String[] csvFileLines {get; set;}
    public List<String> acclist {get; set;}
    public String[] data {get; set;}

    public ImportExcel() {
        csvFileLines = new String[]{};
        acclist = New List<String>();
    }

    public void readFile() {
        try {
            fileName = contentFile.toString();
            system.debug(fileName);
        } catch (Exception e) {
            ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.FATAL,'Please upload a valid CSV document');
            ApexPages.addMessage(myMsg);
            return;
        }

        csvFileLines=fileName.split('\n');
        for (Integer i = 1; i < csvFileLines.size(); i++) {
            data = csvFileLines[i].split(',');
            acclist.add(csvFileLines[i]);
        }
    }
}
salesforce apex
1个回答
1
投票

问题在于文件中的代码无法处理的二进制数据。

contentFileBlob,当你使用contentFile.toString()时,函数会寻找兼容的UTF-8字符串。您的数据可能包含toString()无法使用的二进制数据。

如果你需要存储为字符串的二进制数据,你可以使用EncodingUtil.base64Encode(contentFile)

更多信息herehere

© www.soinside.com 2019 - 2024. All rights reserved.