2010-10-21 66 views
0

我甲肝用于生成报告,其中是HTML文件表格的形式,我想这些文件与数据填充使用动态对象 - 保存..如何动态地将数据添加到HTML文件

任何想法如何做..提前

+0

不要粗鲁,但我已经回答了很多你的问题,并给你代码示例。你甚至没有礼貌来标记我的答案,甚至不接受。 – 2010-10-23 03:20:43

+0

我真的忘了它打勾,你的HTML过去的答案是真的在努力... – 2010-10-23 14:17:25

回答

1

谢谢,我做了很多这方面的。我最好的朋友是NSString & Co.

请特别注意stringWithFormat方法。

例如,这里是我设置html表的颜色。

-(NSString *) colorcomponents:(int) i size:(int) s 
{ 
    CGColorRef color = [[coltable objectAtIndex:i] CGColor]; 
    NSString * tablecompformat = @"<td style=\"background: rgb(%d, %d, %d)\" width=%d height=%d> <b> </b> </td>"; 
    int numComponents = CGColorGetNumberOfComponents(color); 

    if (numComponents == 4) 
    { 
     const CGFloat *components = CGColorGetComponents(color); 
     CGFloat red = components[0]*256; 
     CGFloat green = components[1]*256; 
     CGFloat blue = components[2]*256; 

     return [NSString  stringWithFormat:tablecompformat,(int)red,(int)green,(int)blue,s,s]; 
    } 
    return nil; 
} 

对于您构建的每一块,您都可以使用NSString方法appendString将其添加到主html字符串中。当你完成你的字符串的建立后,你可以将它保存为一个文件或密码或任何其他文件...

这里是主程序。它应该给你一个如何动态生成和html字符串的好主意:

-(NSString *) emailstr 
{ 
    NSMutableString * ress=[[NSMutableString alloc] initWithCapacity:100]; 

    NSString * [email protected]"<tr><td > <b> %@</b> </td> <td>: %@ </td></tr>\n"; 
    //NSString * [email protected]"<tr><td> <b> %@</b> </td> <td>: %@ </td> <td>: %@ </td> </tr>\n"; 
    NSString * [email protected]"<tr><td colspan=\"3\"> <hr> </td> </tr>\n"; 

    [ress appendString:@"<html><body>\n"]; 
    [ress appendString:[NSString stringWithFormat:@"<h3> Game: %@ </h3> \n", [gm name] ]]; 

    [ress appendString:@"<table border=\"0\">"];// beginning of main table 
    [ress appendString:@"<tr><td > <b> Initial</b> </td> <td>"]; 

    [ress appendString:@"<table border=\"0\">"]; 
    for (int i=0;i<[gm xcount];i++) 
    { 
     [ress appendString:@"<tr> "]; 
     for(int j=0;j<[gm ycount];j++) 
     { 
      int k=[gm getinitpos:i y:j]; 
      [ress appendString:[self colorcomponents:k size:10]]; 
     } 
     [ress appendString:@"</tr> "]; 
    } 
    [ress appendString:@"</table><br>\n "]; 
    [ress appendString:@"</td></tr>\n"]; 

    [ress appendString:@"<tr><td> <b> End</b> </td> <td>"]; 
    [ress appendString:@"<table border=\"0\">"]; 
    for (int i=0;i<[gm xcount];i++) 
    { 
     [ress appendString:@"<tr> "]; 
     for(int j=0;j<[gm ycount];j++) 
     { 
      int k=[gm getpos:i y:j]; 
      [ress appendString:[self colorcomponents:k size:10]]; 

     } 
     [ress appendString:@"</tr> "]; 
    } 
    [ress appendString:@"</table><br>"]; 
    [ress appendString:@"</td></tr>\n"]; 


    [ress appendString:[NSString stringWithFormat:formatstring,@"Rules",[sql getrulesname:[gm rules_id]]]]; 
    if ([gm step]>0) 
    { 
     //[ress appendString:@"<table border=\"0\">"]; 
     [ress appendString:hline]; 

     for (int i=1; i<=[gm step];i++) 
     { 
      int x=[sql getlogx:[gm session_id] step:i]; 
      int y=[sql getlogy:[gm session_id] step:i]; 

      NSString * pnum = [NSString stringWithFormat:@"Move %d",i]; 
      NSString * posstring=[NSString stringWithFormat:@"(%d, %d)",x+1,y+1 ]; 
      [ress appendString:[NSString stringWithFormat:formatstring,pnum,posstring]]; 
     } 
     [ress appendString:hline]; 
     //[ress appendString:@"</table><br>"]; 
    } 

    [ress appendString:@"</table><br>"]; //end of main table 

    [ress appendString:@"</body></html>"]; 

    return ress; 
} 
+0

感谢你,我会尝试它 – 2010-10-21 17:01:29

+0

我有基本的HTML文件模板,我不想创建它..,我想访问现有的HTML文件并添加属性给他们.. – 2010-10-21 17:50:47

+0

这应该给你一个好的开始。将文件加载为字符串并使用字符串函数来操作它。或者像我一样将模板内置到Objective-C中。 – 2010-10-21 23:32:34

相关问题