首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过使用xml在iOS 5应用程序上创建文件,将数据导出到*.xls文件

通过使用xml在iOS 5应用程序上创建文件,将数据导出到*.xls文件
EN

Stack Overflow用户
提问于 2012-05-24 18:36:38
回答 1查看 2.7K关注 0票数 3

我使用以下代码在我的iOS应用程序上创建一个*.xls文件。一切都很顺利。我可以用Microsoft Excel打开它,但如果我想用Apple Numbers打开它,它就不起作用了。

代码语言:javascript
运行
复制
- (void)exportToExcel
{
    NSManagedObjectContext *context = [self managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];

    NSError *error;
    NSString *header = @"<?xml version=\"1.0\"?>\n<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"\nxmlns:o=\"urn:schemas-microsoft-com:office:office\"\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\nxmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"\nxmlns:html=\"http://www.w3.org/TR/REC-html40\">\n<Worksheet ss:Name=\"Sheet1\">\n<Table ss:ExpandedColumnCount=\"";
    NSString *columncount = @"\" ss:ExpandedRowCount=\"";
    NSString *rowcount = @"\" x:FullColumns=\"1\"x:FullRows=\"1\">\n";

    NSString *rowStart = @"<Row>\n";
    NSString *rowEnde = @"\n</Row>\n";

    NSString *stringStart = @"<Cell><Data ss:Type=\"String\">";
    NSString *stringEnde = @"</Data></Cell>";

    NSString *numberStart = @"<Cell><Data ss:Type=\"Number\">";
    NSString *numberEnde = @"</Data></Cell>";

    NSString *footer = @"</Table>\n</Worksheet>\n</Workbook>";

    NSString *xlsstring = @"";

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Form" inManagedObjectContext:context];

    [request setEntity:entity];

    NSArray *arr = [context executeFetchRequest:request error:&error];

    int numberOfRows = 1;
    int numberOfCols = 2;

    for (Form *form in arr) {
        numberOfRows = numberOfRows + 1;
    }

    xlsstring = [NSString stringWithFormat:@"%@%i%@%i%@", header, numberOfCols, columncount, numberOfRows, rowcount];
    xlsstring = [xlsstring stringByAppendingFormat:@"%@%@Patient number%@%@Name%@%@", rowStart, stringStart, stringEnde, stringStart, stringEnde, rowEnde];

    for (Form *form in arr) {
        xlsstring = [xlsstring stringByAppendingFormat:@"%@%@%@%@%@%@%@%@", rowStart, numberStart, form.pnumber, numberEnde, stringStart, form.name, stringEnde, rowEnde];
    }
    xlsstring = [xlsstring stringByAppendingFormat:@"%@", footer];

    [xlsstring writeToFile:@"/Users/***/Desktop/form.xls" atomically:YES encoding:NSISOLatin1StringEncoding error:nil];
}

有没有人知道为什么会这样,或者甚至知道这个错误的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-24 19:44:15

数字不会导入Excel XML格式。(请参阅here。)它将导入Excel原生格式,但这不是一项简单的工作。

您能否让您的应用程序同时具有Excel XML (针对Excel用户)和CSV (针对Numbers用户)的选项?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10735805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档