I am working on a custom Magento extension.
I am working around the Adminhtml part and i've created a custom form there. 

Here is the form code:

&lt;?php

class VivasIndustries_SmsNotification_Block_Adminhtml_Sms_Sendmass_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
    {

        public function _prepareLayout() 
           {
              $ExtensionPath = Mage::getModuleDir('js', 'VivasIndustries_SmsNotification'); 
              $head = $this-&gt;getLayout()-&gt;getBlock('head');
              $head-&gt;addJs('jquery.js');
              $head-&gt;addJs('vivas.js');

              return parent::_prepareLayout();
           }

        protected function _prepareForm()
            {
            $form = new Varien_Data_Form(array(
                                    'id' =&gt; 'edit_form',
                                    'action' =&gt; $this-&gt;getUrl('*/*/save', array('id' =&gt; $this-&gt;getRequest()-&gt;getParam('id'))),
                                    'method' =&gt; 'post',
                                 ));

                $fieldset = $form-&gt;addFieldset('edit_form', array('legend'=&gt;Mage::helper('smsnotification')-&gt;__('SMS Information')));

                $CustomerGroups = Mage::getResourceModel('customer/group_collection')-&gt;toOptionArray();

                $smsprice_value = Mage::getStoreConfig('vivas/smsprice/smsprice_value');
                $smsprice_tag = Mage::getStoreConfig('vivas/smsprice/smsprice_tag');

                $customerArray=array();
                foreach($CustomerGroups as $each){

                     $count=Mage::getResourceModel('customer/customer_collection')
                                -&gt;addAttributeToFilter('group_id',$each['value'])-&gt;getSize();
                $SMSPrice = $count * $smsprice_value;               
                     $customerArray[]=array('value'=&gt; $each['value'],'label'=&gt; $each['label'].' - ('.$count.' Members) - ('.$SMSPrice.' '.$smsprice_tag.')');

                }

                $CustomerGroups = array_merge(array('' =&gt; ''), $customerArray);

                $fieldset-&gt;addField('customergroups', 'select',
                        array(
                            'name'      =&gt; 'customergroups',
                            'label'     =&gt; Mage::helper('smsnotification')-&gt;__('Customer Group'),
                            'class'     =&gt; 'required-entry',
                            'after_element_html' =&gt; '&lt;br&gt;&lt;small&gt;If customer group is not selected the SMS will be sended&lt;br&gt; to all store members!&lt;/small&gt;',
                            'values'    =&gt; $CustomerGroups
                        )
                    );


                $fieldset-&gt;addField('smstext', 'textarea', array(
                          'label'     =&gt; Mage::helper('smsnotification')-&gt;__('SMS Text'),
                          'class'     =&gt; 'required-entry',
                          'required'  =&gt; true,
                          'name'      =&gt; 'smstext',
                          'onclick' =&gt; "",
                          'onkeyup' =&gt; "CheckLetterSize(this)",
                          'after_element_html' =&gt; '&lt;br&gt;&lt;b style="color:brown;"&gt;&lt;span id="charNum"&gt;&lt;/span&gt;&lt;span id="charNum1"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;small&gt;SMS text must &lt;b&gt;NOT&lt;/b&gt; be longer then 160 characters!&lt;/small&gt;',
                          'tabindex' =&gt; 1
                        ));






                if ( Mage::getSingleton('adminhtml/session')-&gt;getsmsnotificationData() )
                    {
                        $form-&gt;setValues(Mage::getSingleton('adminhtml/session')-&gt;getsmsnotificationData());
                        Mage::getSingleton('adminhtml/session')-&gt;setsmsnotificationData(null);
                    } elseif ( Mage::registry('smsnotification_data') ) {
                        $form-&gt;setValues(Mage::registry('smsnotification_data')-&gt;getData());
                    }
                // Add these two lines


                $form-&gt;setUseContainer(true);
                $this-&gt;setForm($form);

                ////

                return parent::_prepareForm();
            }
    }


Here is the code that i have in my save action:

$groupId = $this-&gt;getRequest()-&gt;getPost('customergroups', '');
if (!empty($groupId)) {
    //Get customers from a group
    $customers = Mage::getModel('customer/customer')
                        -&gt;getCollection()
                        -&gt;addAttributeToSelect('*')
                        -&gt;addFieldToFilter('group_id', $groupId);
} else {
    //Get all customers
    $customers = Mage::getModel('customer/customer')
                        -&gt;getCollection()
                        -&gt;addAttributeToSelect('*');
}


This code is supposed to give me the group id when i press the submit button. 
But i have to get all the phones of these members in array like that:

$phones = array($phone);


How can i get all the phone numbers and make them in array?


Question: What is the best way to show the user large amounts of data?
Answer: Exporting data can be more time consuming

Ultimately it depends on how your users feel about it but exporting data requires users to think more and can add friction to their work flow.  If I could only choose one option or the other I would go with option 1, however, export to Excel sounds like a very useful function so consider the following example.

Show some with an option to show more

To keep things fast and responsive consider a hybrid solution taking the best of both options you are considering.  Show the sample rows, show more and export all actions.