1

I am new in iphone application development. In my application i am using two different NSMutable array's. Both have dictionary with 4 fields like name, address etc at each index. Now my problem is I want to export that data in HTML table format and make email body. So please, can any one help me.

thank you

rmaddy
  • 314,917
  • 42
  • 532
  • 579

3 Answers3

1

For example items are:

 NSMutableArray *arrItem = [NSMutableArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"sam",@"name",@"london",@"address",nil], nil];

Now create html string like this :

NSString *strHTML =  @"<!DOCTYPE html>"
                     @"<html><body>"
                     @"<table border=\"1\" style=\"width:300px\">"; //change width according to your requirement

for (NSDictionary *dict in arrItem) {
    NSString *strName = [dict objectForKey:@"name"];
    NSString *strAddress = [dict objectForKey:@"address"];
    strHTML = [strHTML stringByAppendingString:@"<tr>"];
    //add table column  value 
    strHTML = [strHTML stringByAppendingString:[NSString stringWithFormat:@"<td>%@</td>",strName]];
    strHTML = [strHTML stringByAppendingString:[NSString stringWithFormat:@"<td>%@</td>",strAddress]];
    strHTML = [strHTML stringByAppendingString:@"</tr>"];
}

strHTML = [strHTML stringByAppendingString:@"</table>"
                                            @"</body>"
                                            @"</html>"];

Use hmtl string in MailcompserViewController :

[controller setMessageBody:strHTML isHTML:YES];

EDIT : formatted

Paresh Navadiya
  • 38,095
  • 11
  • 81
  • 132
0
MailcompserViewController *controller = [[MailcompserViewController alloc] init];//Allocating  mailComposer
NSString *eMailBody=@""; //Value for row
for (int i=0; i<[arrMailList count]; i++) { //Get all the row value
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];  
MailData *data = [arrMailList objectAtIndex:i]; //Get array value in NSObject class
NSDate *date = [dateFormat dateFromString:data.date];
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
[dateFormat1 setDateFormat:@"EEEE, dd MMMM yyyy"]; //Date NSDateFormatter
NSString *strDate = [dateFormat1 stringFromDate:date];
NSString *numbers = [data.setName stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]];
eMailBody = [eMailBody stringByAppendingFormat:@"<tr><td width=\"200px\">%@</td><td >%@</td><td >%@</td><td >%@</td><td>%@</td><td >%@</td></tr>",strDate,data.Name,data.email,data.address,data.phoneNumber];//Create row
        }
NSString *html = [NSString stringWithFormat:@"<html><style>body{font-family:Helvetica;font-size:14px;}th{fontcolor:#ffffff;font-size:16px;font-weight:BOLD;}</style><body><table cellpadding=5px border=1px bordercolor=#000000><tr bgcolor=#cccccc><th width=200>Date</th><th>Workout Name</th><th>Excercise Name</th><th>Set</th><th>Weight</th><th>Reps</th>%@</table></body></html>",eMailBody]; //Add row in table view       
[controller setMessageBody:html isHTML:YES];
[self presentViewController:controller animated:YES completion:nil];
user3663584
  • 100
  • 6
0

var str = "\n"

    str=str.stringByAppendingString("<tr><th>")
    str=str.stringByAppendingString("Task")
    str=str.stringByAppendingString("</th>")

    str=str.stringByAppendingString("<th>")
    str=str.stringByAppendingString("SpareParts")
    str=str.stringByAppendingString("</th>")

    str=str.stringByAppendingString("<th>")
    str=str.stringByAppendingString("Labour")
    str=str.stringByAppendingString("</th></tr>\n")


    var i:Int=0
    for i=0;i<carImageList.count;i++
    {
       str=str.stringByAppendingString("<tr><td>")
       str=str.stringByAppendingString(carImageList[i] as! String)
       str=str.stringByAppendingString("</td>")

        str=str.stringByAppendingString("<td>")
        str=str.stringByAppendingString(carImageList[i] as! String)
        str=str.stringByAppendingString("</td>")

        str=str.stringByAppendingString("<td>")
        str=str.stringByAppendingString(carImageList[i] as! String)
        str=str.stringByAppendingString("</td></tr>\n")

    }

    //SubTotal
    str=str.stringByAppendingString("<tr><td>")
    str=str.stringByAppendingString("Sub Total")
    str=str.stringByAppendingString("</td>")

    str=str.stringByAppendingString("<td>")
    str=str.stringByAppendingString("100")
    str=str.stringByAppendingString("</td>")

    str=str.stringByAppendingString("<td>")
    str=str.stringByAppendingString("100")
    str=str.stringByAppendingString("</td></tr>\n")

   //Total

    str=str.stringByAppendingString("<tr><td>")
    str=str.stringByAppendingString("Total")
    str=str.stringByAppendingString("</td>")

    str=str.stringByAppendingString("<td colSpan='2'>")
    str=str.stringByAppendingString("300")
    str=str.stringByAppendingString("</td></tr>\n")



    str=str.stringByAppendingString("</table></body></html>\n")
    NSLog("TEST %@",str)
    mailComposerVC.setMessageBody(str, isHTML: true)
Iya
  • 1,888
  • 19
  • 12