excel 導入






 //導入
           function importRecord(store)
           {
              window.showModalDialog("${ctx}/fx/fxcustomer!importExcel"+"?rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+650+"px;dialogHeight:"+600+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
           }

action

@Results( { @Result(name = CRUDActionSupport.RELOAD, location = "fxcustomer!input.action?id=${id}&updateFlag=${updateFlag}", type = "redirect") })
public class FxcustomerAction extends CRUDActionSupport<FxCustomer>


public String importExcel() throws Exception {
return "importExcel";
}


 頁面代碼

<%@ include file="/common/taglibsNoButton.jsp"%>
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<title>導入Excel<%=sbfBlank_160.toString()%></title>
<html>
<script type="text/javascript" src="${ctx}/js/ext/DwrProxyCombobox.js"></script>
<link rel="stylesheet" type="text/css"
href="${ctx}/js/ext/ux/css/fileuploadfield.css" />
<script type="text/javascript"
src="${ctx}/js/ext/ux/FileUploadField.js"></script>
<script type="text/javascript"
src="${ctx}/dwr/interface/FxCustomerService.js"></script>
<head>
<script language='JavaScript'> 
 
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
var grid;
var tb = new Ext.Toolbar({});
tb.addSpacer();
tb.addSeparator();


</script>
<script type="text/javascript">
var myData; 
    var store = new Ext.data.JsonStore({
        fields: [
           {name: 'subCompany',mapping: 'subCompany'},
           {name: 'name',mapping: 'name'},
            {name: 'code',mapping: 'code'},
           {name: 'contact',mapping: 'contact'},
           {name: 'mobile',mapping: 'mobile'},
           {name: 'address',mapping: 'address'},
           {name: 'customerCategory',mapping: 'customerCategory'},
           {name: 'businessLine',mapping: 'businessLine'},
           {name: 'payDay',mapping: 'payDay'}
        ]
    }); 
  dwr.engine.setAsync(false); 
window.name="myself"; 
var allowfiletype=".xls"  //允許上傳的文件類型 
  Ext.onReady(function(){ 
Ext.QuickTips.init();
    var msg = function(title, msg){
        Ext.Msg.show({
            title: title,
            msg: msg,
            minWidth: 200,
            modal: true,
            icon: Ext.Msg.INFO,
            buttons: Ext.Msg.OK
        });
    }; 
 var fp = new Ext.FormPanel({
        renderTo: 'fi-form',
        fileUpload: true,
        width: 600,
        height: 210,
        frame: true,
        title: '導入Excel文件', 
        bodyStyle: 'padding: 10px 10px 0 10px;',
        labelWidth: 50,
        defaults: {
            anchor: '80%',
            allowBlank: false,
            msgTarget: 'side'
        },
        items: [{
            xtype: 'fileuploadfield',
            id: 'myFile',
            emptyText: '請選擇欲導入的Excel文件',
            fieldLabel: '',
            name: 'myFile',            
            buttonText: '瀏覽...', 
            listeners:
            {
                'fileselected':function (fb,v)
                {
                   var temp=v.replace(/^.*(\.[^\.\?]*)\??.*$/,'$1'); //獲取文件後綴名
                   var temp1=temp.toLocaleLowerCase() //轉換成小寫字符
                   if(allowfiletype.indexOf(temp1)==-1)
                   {
                       Ext.Msg.alert("錯誤","只能選擇Office2003的Excel文件類型,請重新選擇!");
                        fb.setValue("");
                    }
                }
        }
        }
         ],
        buttons: [{
            text: '導入',
            handler: function(){
                if(fp.getForm().isValid()){
               fp.getForm().submit({
                   url: '${ctx}/fx/fxcustomer!importExcelData',
                   waitMsg: '正在導入信息,請稍等...',
                   success: function(fp, o){
                     myData=o.result.data;
     store.loadData(myData);                
     grid.setTitle("<font color='red'>導入成功信息</font>");
     Ext.Msg.alert("成功","導入成功!");
                   },
                   failure:function(fp, o)
                   {  
                              myData=o.result.data;                          
     store.loadData(myData);            
     grid.setTitle("<font color='red'>導入失敗信息</font>");
     Ext.Msg.alert("失敗","導入失敗!");
                        } 
               });
                }
            }
        },{
            text: '重置',
            handler: function(){
                fp.getForm().reset();
            }
        },{
            text: '下載導入模板',            
            handler: function(){
    window.open("${ctx}/fx/fxcustomer!importSuccess.action");
            }
        }]
    });


 






    // create the grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        title:"導入數據信息",
        tbar:tb,
        columns: [
            {header: "隸屬公司", width: 60, dataIndex: 'subCompany', sortable: true},
            {header: "分銷商名稱", width: 60, dataIndex: 'name', sortable: true},
            {header: "分銷商編號", width: 60, dataIndex: 'code', sortable: true},
            {header: "聯繫人", width: 60, dataIndex: 'contact', sortable: true},
            {header: "聯繫人手機", width: 60, dataIndex: 'mobile', sortable: true}, 
            {header: "地址", width: 60, dataIndex: 'address', sortable: true},
            {header: "分類", width: 60, dataIndex: 'customerCategory', sortable: true},
            {header: "業務線", width: 60, dataIndex: 'businessLine', sortable: true},
            {header: "付款條件",width: 260, dataIndex: 'payDay', sortable: true}
        ],
        renderTo:'grid-example',
        width:600,
        height:430
    });
 


});
 function renderer(v)
 {
  return "<font color='red'>"+v+"</font>";
 }
</script>
</head>
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"
scroll="no">
<p>
<div id="fi-form"></div>
<div id="grid-example"></div>
</p>


</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章