我想能够在libxl中添加一些简单的公式,比如加法和减法,只是不知道怎么做。只是想知道如何添加简单的加法和减法公式
这是我的代码:
- (IBAction)createExcel:(id)sender
{
NSLog(@"createExcel");
BookHandle book = xlCreateBook(); // use xlCreateXMLBook() for working with xlsx files
SheetHandle sheet = xlBookAddSheet(book, "Sheet1", NULL);
这些是我希望公式更改的数字。(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]);
}
}
对于那些抱怨我们应该"阅读文档"的人来说,主要问题是Objective-C中没有示例,只是针对普通的旧C。
以下是对我有效的方法,我构建了一个公式字符串,在D列中添加两行,然后应用它
NSString *formula=[NSString stringWithFormat:@"SUM(D%d:D%d)",startRow,endrow];
xlSheetWriteFormula(sheet, row, 2, [formula cStringUsingEncoding: NSUTF8StringEncoding], cellFormat);
cellFormat是我为所需的字体和边框效果定义的格式。
我想人们一直面临的问题是字符串编码。
我敦促任何购买了LibXL许可证的人鼓励开发人员也为Objective-C开发示例代码。我们已经好几年没有它了。
添加公式是直接的。以下是iOS版LibXl下载附带的示例应用程序中的相关行:
xlSheetWriteFormula(sheet, 6, 1, "SUM(B5:B6)", boldFormat);
看起来唯一需要记住的是,公式需要是C字符串,而不是Objective-C字符串。以下是他们文档中的相关段落:http://www.libxl.com/spreadsheet.html#writeFormula