嗨,我正在编写一个应用程序,我需要将.xls文件转换为xml以将其提供给Web服务。我所有的谷歌搜索都涉及到手动转换。我一直无法找到任何有关如何通过iOS自动执行此操作的教程,有谁知道一个很好的教程,甚至是一本包含此教程的书吗?将.xls文件转换为xml以用于iOS的webservice
谢谢,威廉
嗨,我正在编写一个应用程序,我需要将.xls文件转换为xml以将其提供给Web服务。我所有的谷歌搜索都涉及到手动转换。我一直无法找到任何有关如何通过iOS自动执行此操作的教程,有谁知道一个很好的教程,甚至是一本包含此教程的书吗?将.xls文件转换为xml以用于iOS的webservice
谢谢,威廉
你有两个选择,将其转换为.xlsx,并且大部分工作都是为您完成的,或者如果您计划在另一端简单地“拆包”.xls,则可以执行<data type="application/vnd.ms-excel">(Base64encoded file contents)</data>
或类似的操作。
经过多次搜索,我设法找到了一个解决方案,将.xls文件发送为建议的Flynn1179之类的.xls文件。我感到困惑,认为我必须将该文件作为xml发送到Web服务。下面是我使用的代码:
-(void)uploadFile:(NSString*)filename withExtension:(NSString*)extension{
NSString* path = [[NSBundle mainBundle] pathForResource:filename ofType:extension];
NSData *data = [NSData dataWithContentsOfFile:path];
NSString *urlString = @"http://server/path/to/webservice/call";
NSMutableURLRequest *request= [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *postbody = [NSMutableData data];
[postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"%@.%@\"\r\n", filename, extension] dataUsingEncoding:NSUTF8StringEncoding]]; //"uploadedfile" should be substituted for whatever variable the backend script expects the file variable to be
[postbody appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:data];
[postbody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postbody];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"returned string: %@", returnString); //Just for display purposes
}
感谢大家的帮助
感谢您的答复,是新的网络服务和传输数据,并从Web服务。我怎么base64encode通过文件? – williamb 2010-10-06 15:55:11
很明显取决于您的平台,但以下是.NET中的方法:http://msdn.microsoft.com/en-us/library/dhx0d524.aspx – Flynn1179 2010-10-06 18:05:13