1.导出.csv格式文件:其中会遇到中文乱码问题,会直接生成book.csv文件
<apex:page controller="BookController" cache="true" contentType="text/csv#book.csv" language="en-US"> Name <apex:repeat value="{!BookWithIndex}" var="a"> {!a.book.name} </apex:repeat> </apex:page>
BookController如下:
public class BookController { public ApexPages.StandardSetController setCon { get { if(setCon == null) { setCon = new ApexPages.StandardSetController(Database.getQueryLocator( [SELECT name FROM Book1__c])); //setCon.setPageSize(5); } return setCon; } set; } public List<Book1__c> getBooks() { return (List<Book1__c>) setCon.getRecords(); } public List<BookWrapper> getBookWithIndex() { List<Book1__c> bookList = this.getBooks(); List<BookWrapper> bookWrapped = new List<BookWrapper>(); Integer idex = 1; for (Book1__c book : bookList) { bookWrapped.add(new BookWrapper(book, idex)); idex++; } return bookWrapped; } public class BookWrapper { public Book1__c book { get; set; } public Integer tabIndex { get; set; } public BookWrapper(Book1__c book, Integer tabIndex) { this.book = book; this.tabIndex = tabIndex; } } }
2.上传.csv格式文件,代码如下:
<apex:page controller="importDataFromCSVController"> <apex:form > <apex:pagemessages /> <apex:pageBlock > <apex:pageBlockSection columns="4"> <apex:inputFile value="{!csvFileBody}" filename="{!csvAsString}"/> <apex:commandButton value="Import Book" action="{!importCSVFile}"/> </apex:pageBlockSection> </apex:pageBlock> <apex:pageBlock > <apex:pageblocktable value="{!accList}" var="acc"> <apex:column value="{!acc.name}" /> </apex:pageblocktable> </apex:pageBlock> </apex:form> </apex:page>
importDataFromCSVController代码如下:
public class importDataFromCSVController { public Blob csvFileBody{get;set;} public string csvAsString{get;set;} public String[] csvFileLines{get;set;} public List<Book1__c> acclist{get;set;} public importDataFromCSVController(){ csvFileLines = new String[]{}; acclist = New List<Book1__c>(); } public void importCSVFile(){ try{ csvAsString = csvFileBody.toString(); csvFileLines = csvAsString.split(' '); for(Integer i=1;i<csvFileLines.size();i++){ Book1__c accObj = new Book1__c() ; string[] csvRecordData = csvFileLines[i].split(','); accObj.name = csvRecordData[0] ; acclist.add(accObj); } insert acclist; } catch (Exception e) { ApexPages.Message errorMessage = new ApexPages.Message(ApexPages.severity.ERROR,'An error has occured while importin data Please make sure input csv file is correct'); ApexPages.addMessage(errorMessage); } } }