Ext.onReady(function(){    // NOTE: This is an example showing simple state management. During development,
    // it is generally best to disable state management as dynamically-generated ids
    // can change across page loads, leading to unpredictable results.  The developer
    // should ensure that stable state ids are set for stateful components in real apps.
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
    // example of custom renderer function
    //function addfile(){
var exApp = new ActiveXObject("Excel.Application");
var exWBook = exApp.workbooks.open("d:\\jmrbmms.xls");
var exWSheet = exWBook.Worksheets(1);
var i=2,j=1;
var a =new Array(); while (exWSheet.Cells(i, j).Value != null) {
     a[i]=new Array();   
     while (exWSheet.Cells(i, j).Value != null) {     
      a[i].push(exWSheet.Cells(i, j));
      j=j+1; 
     }
     i=i+1;
     j=1; }var myData=new Array();
var k=2;
while (a[k]!=null){
myData.push(a[k]);
k=k+1;
}
/*
document.write("<div><br/>myData[0]="+myData[0]);
document.write("<br/>myData[1]="+myData[1]);
document.write("<br/>myData[2]="+myData[2]);
document.write("<br/>myData[3]="+myData[3]+"</div>");*/
alert(myData[0].length);
exWBook.Close (savechanges=true);
exApp.Quit();
exApp = null;/*
var myData2=[
[13612268339,100101,6],
[13925812122,101025,7],
[13528254782,101252,8]
];
document.write("<br/>myData2[0]="+myData2[0]);
document.write("<br/>myData2[1]="+myData2[1]);
document.write("<br/>myData2[2]="+myData2[2]);*/
    var store = new Ext.data.SimpleStore({
        fields: [
           {name: 'number'},
           {name: 'property'},
           {name: 'status'}          
        ]
    });        store.loadData(myData);  
 alert("load complete");
 //var myData2=new Array();
 var myData2;
 myData2=myData;
    var grid = new Ext.grid.GridPanel({
        store: store,
        renderTo:'grid-example',
        columns: [
            {id:'number',header: "number", width: 160, sortable: true, dataIndex: 'number'},
            {header: "property", width: 75, sortable: true,  dataIndex: 'property'},
            {header: "status", width: 75, sortable: true, dataIndex: 'status'}
        ],
        stripeRows: true,
        autoExpandColumn: 'number',
        height:350,
        width:600,
        title:'Array Grid'
    });
alert("ready");
try {
grid.render();

catch (err) {
alert(err.name + ": " + err.description);
}
    //grid.render('grid-example');});

解决方案 »

  1.   

    一直调试到grid.render那里,就出问题。如果我将var myData2=[ 
    [13612268339,100101,6], 
    [13925812122,101025,7], 
    [13528254782,101252,8] 
    ]; 
    静态数组就没问题
      

  2.   

    while (exWSheet.Cells(i, j).Value != null) {
        a[i]=new Array(); 
        while (exWSheet.Cells(i, j).Value != null) {   
          a[i].push(exWSheet.Cells(i, j));
          j=j+1;
        }
        i=i+1;
        j=1;} 
    这一段估计有问题,你查查