You can upload the "csv" file into objects without having DataLoader. Check the code below.
Here is the example for Account object to insert csv file.
***********Visualforce Code**************
<apex:page sidebar="false" controller="FileUploader">
<apex:form >
<apex:sectionHeader title="Upload data from CSV file"/>
<apex:pagemessages />
<apex:pageBlock >
<center>
<apex:inputFile value="{!contentFile}" filename="{!nameFile}" /> <apex:commandButton action="{!ReadFile}" value="Upload File" id="theButton" style="width:70px;"/>
<br/> <br/> <font color="red"> <b>Note: Please use the standard csv file to upload Accounts. </b> </font>
</center>
<apex:pageblocktable value="{!uploadedAccounts}" var="acc" rendered="{!NOT(ISNULL(uploadedAccounts))}">
<apex:column headerValue="Account Name">
<apex:outputField value="{!acc.Name}"/>
</apex:column>
<apex:column headerValue="Shipping Street">
<apex:outputField value="{!acc.ShippingStreet}"/>
</apex:column>
<apex:column headerValue="Shipping City">
<apex:outputField value="{!acc.ShippingCity}"/>
</apex:column>
<apex:column headerValue="Shipping State">
<apex:outputField value="{!acc.ShippingState}"/>
</apex:column>
<apex:column headerValue="Shipping Postal Code">
<apex:outputField value="{!acc.ShippingPostalCode}"/>
</apex:column>
<apex:column headerValue="Shipping Country">
<apex:outputField value="{!acc.ShippingCountry}"/>
</apex:column>
</apex:pageblocktable>
</apex:pageBlock>
</apex:form>
</apex:page>
***********Controller of the page**********
public class FileUploader
{
public string nameFile{get;set;}
public Blob contentFile{get;set;}
String[] filelines = new String[]{};
List<Account> accstoupload;
public Pagereference ReadFile()
{
nameFile=contentFile.toString();
filelines = nameFile.split('\n');
accstoupload = new List<Account>();
for (Integer i=1;i<filelines.size();i++)
{
String[] inputvalues = new String[]{};
inputvalues = filelines[i].split(',');
Account a = new Account();
a.Name = inputvalues[0];
a.ShippingStreet = inputvalues[1];
a.ShippingCity = inputvalues[2];
a.ShippingState = inputvalues[3];
a.ShippingPostalCode = inputvalues[4];
a.ShippingCountry = inputvalues[5];
accstoupload.add(a);
}
try{
insert accstoupload;
}
catch (Exception e)
{
ApexPages.Message errormsg = new ApexPages.Message(ApexPages.severity.ERROR,'An error has occured. Please check the template or try again later');
ApexPages.addMessage(errormsg);
}
return null;
}
public List<Account> getuploadedAccounts()
{
if (accstoupload!= NULL)
if (accstoupload.size() > 0)
return accstoupload;
else
return null;
else
return null;
}
}
************************************************
Here is the example for Account object to insert csv file.
***********Visualforce Code**************
<apex:page sidebar="false" controller="FileUploader">
<apex:form >
<apex:sectionHeader title="Upload data from CSV file"/>
<apex:pagemessages />
<apex:pageBlock >
<center>
<apex:inputFile value="{!contentFile}" filename="{!nameFile}" /> <apex:commandButton action="{!ReadFile}" value="Upload File" id="theButton" style="width:70px;"/>
<br/> <br/> <font color="red"> <b>Note: Please use the standard csv file to upload Accounts. </b> </font>
</center>
<apex:pageblocktable value="{!uploadedAccounts}" var="acc" rendered="{!NOT(ISNULL(uploadedAccounts))}">
<apex:column headerValue="Account Name">
<apex:outputField value="{!acc.Name}"/>
</apex:column>
<apex:column headerValue="Shipping Street">
<apex:outputField value="{!acc.ShippingStreet}"/>
</apex:column>
<apex:column headerValue="Shipping City">
<apex:outputField value="{!acc.ShippingCity}"/>
</apex:column>
<apex:column headerValue="Shipping State">
<apex:outputField value="{!acc.ShippingState}"/>
</apex:column>
<apex:column headerValue="Shipping Postal Code">
<apex:outputField value="{!acc.ShippingPostalCode}"/>
</apex:column>
<apex:column headerValue="Shipping Country">
<apex:outputField value="{!acc.ShippingCountry}"/>
</apex:column>
</apex:pageblocktable>
</apex:pageBlock>
</apex:form>
</apex:page>
***********Controller of the page**********
public class FileUploader
{
public string nameFile{get;set;}
public Blob contentFile{get;set;}
String[] filelines = new String[]{};
List<Account> accstoupload;
public Pagereference ReadFile()
{
nameFile=contentFile.toString();
filelines = nameFile.split('\n');
accstoupload = new List<Account>();
for (Integer i=1;i<filelines.size();i++)
{
String[] inputvalues = new String[]{};
inputvalues = filelines[i].split(',');
Account a = new Account();
a.Name = inputvalues[0];
a.ShippingStreet = inputvalues[1];
a.ShippingCity = inputvalues[2];
a.ShippingState = inputvalues[3];
a.ShippingPostalCode = inputvalues[4];
a.ShippingCountry = inputvalues[5];
accstoupload.add(a);
}
try{
insert accstoupload;
}
catch (Exception e)
{
ApexPages.Message errormsg = new ApexPages.Message(ApexPages.severity.ERROR,'An error has occured. Please check the template or try again later');
ApexPages.addMessage(errormsg);
}
return null;
}
public List<Account> getuploadedAccounts()
{
if (accstoupload!= NULL)
if (accstoupload.size() > 0)
return accstoupload;
else
return null;
else
return null;
}
}
************************************************
No comments:
Post a Comment