Это не может выглядеть точно так, как вы хотите, потому что таблицы в MS Excel и на iPhone разные.
В табличном представлении на iOS есть два элемента, которые вы можете настроить для отображения данных - хранилище данныхи делегат.
Если вы можете извлечь все данные из MS Excel таким образом, чтобы вы могли получить доступ к любым конкретным данным, просто зная их строку и столбец, тогда эти данные могут отображаться в табличном представлении.
В табличном представлении есть концепция NSIndexPath
, которая представляет собой структуру номеров строк и соответствующего номера раздела.Теперь давайте предположим, что в вашем документе Excel есть записи о ста учениках, и у каждой записи есть три поля: имя, возраст, пол.В этой ситуации вы создадите табличное представление с сотней разделов и тремя строками для каждого раздела.
Теперь предположим, что у вас есть контроллер представления с именем myViewController
, чтобы показать это табличное представление с именем myTableView
:
-(void)viewDidLoad {
myTableView.datasource = self;
myTableView.delegate = self;
}
Теперь, прежде чем вы сможете это сделать, вам нужно сделать следующее в файле MyViewController.h
@interface MyViewController: UIViewController <UITableViewDataSource, UITableViewDelegate> {
Теперь предположим, что у вас есть массив с именем allStudents
, содержащий объекты класса Student
который имеет три свойства:
NSString * name;
NSUInteger * age;
BOOL male; // yes if sex is male else NO
Теперь вам нужно реализовать методы источника данных и делегата табличного представления:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [allStudents count];
}
-(NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
Student * current = [allStudents objectAtIndex:NSIndexPath.section];
cell.textLabel.text = current.name;
if( current.male ) {
cell.detailTextLabel.text = [NSString stringWithFormat:@"%dyr M",current.age];
} else {
cell.detailTextLabel.text = [NSString stringWithFormat:@"%dyr F",current.age];
}
return cell;
}
Вы можете получить доступ к различным свойствам вашего табличного представления, чтобы сделать еговедите себя по-разному.
Надеюсь, это помогло вам.