如何在libxl for ios中嵌入公式



我想能够在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

相关内容

  • 没有找到相关文章

最新更新