I want to be able to add some simple formulas to libxl like addition and subtraction, just dont know how to do it. Just wondering how to add simple addition and subtraction formulas.
Here is my code :
- (IBAction)createExcel:(id)sender
{
NSLog(@"createExcel");
BookHandle book = xlCreateBook(); // use xlCreateXMLBook() for working with xlsx files
SheetHandle sheet = xlBookAddSheet(book, "Sheet1", NULL);
These are the numbers that i want the formulas to change.(100 & 150)
xlSheetWriteStr(sheet, 1, 0, 100, 0);
xlSheetWriteStr(sheet, 1, 0, 150, 0);
NSString *documentPath =
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *filename = [documentPath stringByAppendingPathComponent:@"insuranceclaim.xls"];
xlBookSave(book, [filename UTF8String]);
xlBookRelease(book);
if (![MFMailComposeViewController canSendMail]) {
//Show alert that device cannot send email, this is because an email account hasn't been setup.
}
else {
//**EDIT HERE**
//Use this to retrieve your recently saved file
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *filename = [documentPath stringByAppendingPathComponent:@"insuranceclaim.xls"];
//**END OF EDIT**
NSString *mimeType = @"application/vnd.ms-excel"; //This should be the MIME type for els files. May want to double check.
NSData *fileData = [NSData dataWithContentsOfFile:filename];
NSString *fileNameWithExtension = self.personFirstnameTextField.text; //This is what you want the file to be called on the email along with it's extension:
//If you want to then delete the file:
NSError *error;
if (![[NSFileManager defaultManager] removeItemAtPath:filename error:&error])
NSLog(@"ERROR REMOVING FILE: %@", [error localizedDescription]);
}
}
Adding formulas is straight-forward. Here is the relevant line from the sample app that comes with the LibXl for iOS download:
xlSheetWriteFormula(sheet, 6, 1, "SUM(B5:B6)", boldFormat);
Looks like the only thing important to keep in mind is that the formula needs to be a C string, not an Objective-C string. Here's the relevant passage in their documentation: http://www.libxl.com/spreadsheet.html#writeFormula