Java
Java
Xero Export Accounts to CSV
Demonstrates how to export Accounts data to a CSV.Note: Requires Chilkat v9.5.0.64 or greater.
Chilkat Java Downloads
import com.chilkatsoft.*;
public class ChilkatExample {
static {
try {
System.loadLibrary("chilkat");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
boolean success = false;
// Note: Requires Chilkat v9.5.0.64 or greater.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkRest rest = new CkRest();
// Before sending REST API calls, the REST object needs to be
// initialized for OAuth1.
// See Xero 2-Legged OAuth1 Setup for sample code.
// Assuming the REST object's OAuth1 authenticator is setup, and the initial
// connection was made, we may now send REST HTTP requests..
// Get the full list of accounts.
CkStringBuilder sbXml = new CkStringBuilder();
success = rest.FullRequestNoBodySb("GET","/api.xro/2.0/Accounts",sbXml);
if (success != true) {
System.out.println(rest.lastErrorText());
return;
}
// A 200 response is expected for actual success.
if (rest.get_ResponseStatusCode() != 200) {
System.out.println(sbXml.getAsString());
return;
}
// Build a CSV containing a few Account fields.
CkCsv csv = new CkCsv();
csv.put_HasColumnNames(true);
csv.SetColumnName(0,"AccountID");
csv.SetColumnName(1,"Name");
csv.SetColumnName(2,"Code");
csv.SetColumnName(3,"EnablePaymentsToAccount");
// Iterate over the accounts and build the CSV.
boolean bAutoTrim = false;
CkXml xml = new CkXml();
xml.LoadSb(sbXml,bAutoTrim);
int numAccounts = xml.NumChildrenAt("Accounts");
int i = 0;
while (i < numAccounts) {
xml.put_I(i);
csv.SetCellByName(i,"AccountID",xml.getChildContent("Accounts|Account[i]|AccountID"));
csv.SetCellByName(i,"Name",xml.getChildContent("Accounts|Account[i]|Name"));
csv.SetCellByName(i,"Code",xml.getChildContent("Accounts|Account[i]|Code"));
csv.SetCellByName(i,"EnablePaymentsToAccount",xml.getChildContent("Accounts|Account[i]|EnablePaymentsToAccount"));
i = i+1;
}
// Examine the CSV.
System.out.println(csv.saveToString());
// Save the CSV to a file.
csv.SaveFile("qa_output/xero_accounts.csv");
}
}