* Fires when source document has been loaded
* @param {Pman.Gnumerci} this
*/
- "load" : true
+ 'load' : true
});
Roo.util.Observable.call(this,cfg);
Roo.each(merge, function(c) {
var rc = _t.rangeToRC(c.textContent);
- //Roo.log(JSON.stringify(rc))
+ //Roo.log(JSON.stringify(rc));
if (typeof(_t.grid[rc[0].r][rc[0].c]) == 'undefined') {
- _t.grid[rc[0].r][rc[0].c] = Roo.applyIf({ r : rc[0].r, c : rc[0].c }, _t.defaultCell);
+ //Roo.log(["creating empty cell for ",rc[0].r, rc[0].c ]);
+ _t.createCell(rc[0].r, rc[0].c );
+ //_t.grid[rc[0].r][rc[0].c] = //Roo.applyIf({ r : rc[0].r, c : rc[0].c }, _t.defaultCell);
}
_t.grid[rc[0].r][rc[0].c].colspan = (rc[1].c - rc[0].c) + 1;
_t.grid[rc[0].r][rc[0].c].rowspan = (rc[1].r - rc[0].r) + 1;
for(var r = (rc[0].r); r < (rc[1].r+1); r++) {
- for(var c = rc[0].c; c < (rc[1].c+1); c++) {
+ for(var cc = rc[0].c; cc < (rc[1].c+1); cc++) {
//Roo.log('adding alias : ' + r+','+c);
- _t.grid[r][c] = _t.grid[rc[0].r][rc[0].c];
+ _t.grid[r][cc] = _t.grid[rc[0].r][rc[0].c];
}
}
for (var c = s.c; c < s.c1;c++) {
if (c > _t.cmax) continue;
- if (typeof(_t.grid[r][c]) == 'undefined') _t.grid[r][c] = Roo.applyIf({ r: r , c : c }, _t.defaultCell);
+ if (typeof(_t.grid[r][c]) == 'undefined') {
+ _t.createCell(r,c);
+ //_t.grid[r][c] = Roo.applyIf({ r: r , c : c }, _t.defaultCell);
+ }
var g=_t.grid[r][c];
if (typeof(g.cls) =='undefined') {
g.cls = [];
set : function(cell, v, vt, vf) {
var cs= typeof(cell) == 'string' ? this.toRC(cell) : cell;
- //Roo.log( cs.r+ ',' + cs.c + ' = '+ v);
+
+
+ Roo.log( cs.r+ ',' + cs.c + ' = '+ v);
// need to generate clell if it doe
if (typeof(this.grid[cs.r]) == 'undefined') {
- //Roo.log('no row:' + cell);
+ Roo.log('no row:' + cell);
this.grid[cs.r] = []; // create a row..
//return;
}
if (typeof(this.grid[cs.r][cs.c]) == 'undefined') {
- //Roo.log('cell not defined:' + cell);
+ Roo.log('cell not defined:' + cell);
this.createCell(cs.r,cs.c);
}
+ // cell might not be rendered yet... so if we try and create a cell, it overrides the default formating..
+
if (typeof(this.grid[cs.r][cs.c].dom) == 'undefined') {
- ///Roo.log('no default content for cell:' + cell);
- this.createCell(cs.r,cs.c);
+ Roo.log('no default content for cell:' + cell);
+ Roo.log(this.grid[cs.r][cs.c]);
+ //this.createCell(cs.r,cs.c);
//return;
}
this.grid[cs.r][cs.c].value= v;
- this.grid[cs.r][cs.c].dom.textContent= v;
+ if (this.grid[cs.r][cs.c].dom) {
+ this.grid[cs.r][cs.c].dom.textContent= v;
+ }
+
+
if (typeof(vt) != 'undefined') {
this.grid[cs.r][cs.c].valueType = vt;
this.grid[cs.r][cs.c].dom.setAttribute('ValueType', vt);
// start adding them all together..
if (sb) {
- st.appendChild(sb)
+ st.appendChild(sb);
}
// step 1 - work out how many columns it will span..
// lets hope the spreadsheet is big enought..
var colwidth = 0;
- var endcol=col
+ var endcol=col;
for ( endcol=col;endcol <100; endcol++) {
if (!this.colInfo[endcol]) {
this.colInfo[endcol] = 100; // eak fudge
// return;
//}
- cell.textContent = this.RCtoCell(row1,col1) + ':' + this.RCtoCell(row2,col2)
+ cell.textContent = this.RCtoCell(row1,col1) + ':' + this.RCtoCell(row2,col2);
//var merges = this.gnumeric.getElementsByTagNameNS('*','MergedRegions');
var merges = this.sheet.getElementsByTagNameNS('*','MergedRegions');
sheetnames = this.doc.getElementsByTagNameNS('*','Sheet');
sheetnames[0].parentNode.appendChild(sheetnames[sheetnames.length-1].cloneNode(true));
var sn = this.doc.getElementsByTagNameNS('*','Sheet')[sheet];
- var cls = sn.getElementsByTagNameNS('*','Cells')[0]
+ var cls = sn.getElementsByTagNameNS('*','Cells')[0];
while (cls.childNodes.length) {
cls.removeChild(cls.firstChild);
}
for (var r = 0; r < this.rmax;r++) {
out += '<tr style="height:'+this.rowInfo[r]+'px;">';
for (var c = 0; c < this.cmax;c++) {
- var g = (typeof(grid[r][c]) == 'undefined') ? defaultCell : grid[r][c];
+ if (typeof(grid[r][c]) == 'undefined') {
+ this.createCell(r,c);
+
+ }
+ var g = grid[r][c];
if (typeof(g.cls) =='undefined') g.cls = [];
var w= calcWidth(c,g.colspan);
+
+ var value = g.value[0] == '=' ? 'CALCULATED' : g.value;
+
+ try {
+ if(
+ g.styles[0].firstElementChild.getAttribute('Format') == "D\\-MMM\\-YYYY;@" &&
+ g.value[0] != '=' &&
+ !isNaN(value * 1) &&
+ value != 0
+ ){
+ value = new Date(value * 24 * 60 * 60 * 1000 + new Date('1899-12-30').getTime()).format('d-M-Y');
+ }
+
+ } catch(e) {
+
+ }
+
out+=String.format('<td colspan="{0}" rowspan="{1}" class="{4}"><div style="{3}">{2}</div></td>',
- g.colspan, g.rowspan, g.value,
+ g.colspan, g.rowspan, value,
'overflow:hidden;' +
'width:'+w+'px;' +
var ser = new XMLSerializer();
var x = new Pman.Download({
method: 'POST',
+ timeout : 120000, // quite a long wait.. 2 minutes.
params : {
xml : ser.serializeToString(this.doc),
format : 'xls', //xml