Commit 097ded1a authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander.Trofimov

добавлена иерархия стилей в ячейке(таблицы, ячейки, условного форматирования)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@47347 954022d7-b5bf-4e40-9824-e11837661b57
parent 6a12c0d6
......@@ -43,7 +43,7 @@
this.AboveAverage = true;
this.Bottom = false;
this.DxfId = null;
this.dxf = null;
this.EqualAverage = false;
this.Operator = null;
this.Percent = false;
......
......@@ -5503,7 +5503,11 @@ function Binary_WorksheetTableReader(stream, wb, aSharedStrings, aCellXfs, Dxfs,
else if (c_oSer_ConditionalFormattingRule.Bottom === type)
oConditionalFormattingRule.Bottom = this.stream.GetBool();
else if (c_oSer_ConditionalFormattingRule.DxfId === type)
oConditionalFormattingRule.DxfId = this.stream.GetULongLE();
{
var DxfId = this.stream.GetULongLE();
var dxf = this.Dxfs[DxfId];
oConditionalFormattingRule.dxf = dxf;
}
else if (c_oSer_ConditionalFormattingRule.EqualAverage === type)
oConditionalFormattingRule.EqualAverage = this.stream.GetBool();
else if (c_oSer_ConditionalFormattingRule.Operator === type)
......@@ -6119,6 +6123,8 @@ function CTableStyle()
this.pivot = true;
this.table = true;
this.compiled = null;
this.blankRow = null;
this.firstColumn = null;
this.firstColumnStripe = null;
......@@ -6148,6 +6154,175 @@ function CTableStyle()
this.totalRow = null;
this.wholeTable = null;
}
CTableStyle.prototype =
{
getStyle: function(bbox, rowAbs, colAbs, rowIndex, colIndex, options, headerRowCount, totalsRowCount)
{
if(null == this.compiled)
this._compile();
var res = null;
if(headerRowCount > 0 && rowAbs == bbox.r1)
res = this.compiled.header;
else if(totalsRowCount > 0 && rowAbs == bbox.r2)
res = this.compiled.total;
else
{
var option = this._getOption(options);
if(options.ShowFirstColumn && colAbs == bbox.c1)
{
if(0 == (rowIndex - headerRowCount) % 2)
res = option.leftRowFirstColFirst;
else
res = option.leftRowSecondColFirst;
}
else if(options.ShowLastColumn && colAbs == bbox.c2)
{
if(0 == (rowIndex - headerRowCount) % 2)
{
if(0 == colIndex % 2)
res = option.rightRowFirstColFirst;
else
res = option.rightRowFirstColSecond;
}
else
{
if(0 == colIndex % 2)
res = option.rightRowSecondColFirst;
else
res = option.rightRowSecondColSecond;
}
}
else if(options.ShowRowStripes || options.ShowColumnStripes)
{
if(0 == (rowIndex - headerRowCount) % 2)
{
if(0 == colIndex % 2)
res = option.rowFirstColFirst;
else
res = option.rowFirstColSecond;
}
else
{
if(0 == colIndex % 2)
res = option.rowSecondColFirst;
else
res = option.rowSecondColSecond;
}
}
else
res = this.wholeTable;
}
return res;
},
_getOption: function(options)
{
var nBitMask = 0;
if(options.ShowFirstColumn)
nBitMask += 1;
if(options.ShowLastColumn)
nBitMask += 1 << 1;
if(options.ShowRowStripes)
nBitMask += 1 << 2;
if(options.ShowColumnStripes)
nBitMask += 1 << 3;
var styles = this.compiled.options[nBitMask];
if(null == styles)
{
styles = {
leftRowFirstColFirst: new CellXfs(),
leftRowSecondColFirst: new CellXfs(),
rowFirstColFirst: new CellXfs(),
rowSecondColFirst: new CellXfs(),
rowFirstColSecond: new CellXfs(),
rowSecondColSecond: new CellXfs(),
rightRowFirstColFirst: new CellXfs(),
rightRowSecondColFirst: new CellXfs(),
rightRowFirstColSecond: new CellXfs(),
rightRowSecondColSecond: new CellXfs()
}
this._compileOption(options, styles);
this.compiled.options[nBitMask] = styles;
}
return styles;
},
_compileOption : function(options, styles)
{
for(var i in styles)
{
var elem = styles[i];
var xfs = elem;
if(options.ShowFirstColumn && elem == styles.leftRowFirstColFirst || elem == styles.leftRowSecondColFirst)
{
if(null != this.firstColumn)
xfs = xfs.merge(this.firstColumn.dxf);
}
else if(options.ShowLastColumn && elem == styles.rightRowFirstColFirst || elem == styles.rightRowSecondColFirst ||
elem == styles.rightRowFirstColSecond || elem == styles.rightRowSecondColSecond)
{
if(null != this.lastColumn)
xfs = xfs.merge(this.lastColumn.dxf);
}
if(options.ShowRowStripes)
{
if(elem == styles.leftRowFirstColFirst || elem == styles.rowFirstColFirst ||
elem == styles.rowFirstColSecond || elem == styles.rightRowFirstColFirst || elem == styles.rightRowFirstColSecond)
{
if(null != this.firstRowStripe)
xfs = xfs.merge(this.firstRowStripe.dxf);
}
else
{
if(null != this.secondRowStripe)
xfs = xfs.merge(this.secondRowStripe.dxf);
}
}
if(options.ShowColumnStripes)
{
if(elem == styles.leftRowFirstColFirst || elem == styles.leftRowSecondColFirst ||
elem == styles.rowFirstColFirst || elem == styles.rowSecondColFirst ||
elem == styles.rightRowFirstColFirst || elem == styles.rightRowSecondColFirst)
{
if(null != this.firstColumnStripe)
xfs = xfs.merge(this.firstColumnStripe.dxf);
}
else
{
if(null != this.secondColumnStripe)
xfs = xfs.merge(this.secondColumnStripe.dxf);
}
}
if(null != this.wholeTable)
xfs = xfs.merge(this.wholeTable.dxf);
styles[i] = xfs;
}
},
_compile : function()
{
this.compiled = {
header: null,
total: null,
options: new Object()
};
//header
if(null != this.headerRow && null != this.wholeTable)
{
this.compiled.header = new CellXfs();
if(null != this.headerRow)
this.compiled.header = this.compiled.header.merge(this.headerRow.dxf);
if(null != this.wholeTable)
this.compiled.header = this.compiled.header.merge(this.wholeTable.dxf);
}
//total
if(null != this.totalRow && null != this.wholeTable)
{
this.compiled.total = new CellXfs();
if(null != this.totalRow)
this.compiled.total = this.compiled.total.merge(this.totalRow.dxf);
if(null != this.wholeTable)
this.compiled.total = this.compiled.total.merge(this.wholeTable.dxf);
}
}
}
function CTableStyleElement()
{
this.size = 1;
......
This diff is collapsed.
......@@ -10,6 +10,7 @@ var g_oDefaultNumAbs = null;
var g_oDefaultBorderAbs = null;
var g_oDefaultAlignAbs = null;
var g_nColorTextDefault = 1;
var g_nColorHyperlink = 10;
var g_nColorHyperlinkVisited = 11;
......@@ -311,7 +312,7 @@ function Font(val)
i : false,
u : "none",
s : false,
c : g_oColorManager.getThemeColor(1),
c : g_oColorManager.getThemeColor(g_nColorTextDefault),
va : "baseline",
skip : false,
repeat : false
......@@ -343,6 +344,34 @@ function Font(val)
};
Font.prototype =
{
_mergeProperty : function(first, second, def)
{
if(def != first)
return first;
else
return second;
},
merge : function(font)
{
var oRes = new Font();
oRes.fn = this._mergeProperty(this.fn, font.fn, g_oDefaultFont.fn);
oRes.fs = this._mergeProperty(this.fs, font.fs, g_oDefaultFont.fs);
oRes.b = this._mergeProperty(this.b, font.b, g_oDefaultFont.b);
oRes.i = this._mergeProperty(this.i, font.i, g_oDefaultFont.i);
oRes.u = this._mergeProperty(this.u, font.u, g_oDefaultFont.u);
oRes.s = this._mergeProperty(this.s, font.s, g_oDefaultFont.s);
//заглушка excel при merge стилей игнорирует default цвет
if(this.c instanceof ThemeColor && g_nColorTextDefault == this.c.theme && null == this.c.tint)
oRes.c = this._mergeProperty(font.c, this.c, g_oDefaultFont.c);
else
oRes.c = this._mergeProperty(this.c, font.c, g_oDefaultFont.c);
oRes.themeColor = this._mergeProperty(this.themeColor, font.themeColor, g_oDefaultFont.themeColor);
oRes.themeTint = this._mergeProperty(this.themeTint, font.themeTint, g_oDefaultFont.themeTint);
oRes.va = this._mergeProperty(this.va, font.va, g_oDefaultFont.va);
oRes.skip = this._mergeProperty(this.skip, font.skip, g_oDefaultFont.skip);
oRes.repeat = this._mergeProperty(this.repeat, font.repeat, g_oDefaultFont.repeat);
return oRes;
},
getRgbOrNull : function()
{
var nRes = null;
......@@ -526,6 +555,21 @@ function Fill(val)
};
Fill.prototype =
{
_mergeProperty : function(first, second, def)
{
if(def != first)
return first;
else
return second;
},
merge : function(fill)
{
var oRes = new Fill();
oRes.bg = this._mergeProperty(this.bg, fill.bg, g_oDefaultFill.bg);
oRes.themeColor = this._mergeProperty(this.themeColor, fill.themeColor, g_oDefaultFill.themeColor);
oRes.themeTint = this._mergeProperty(this.themeTint, fill.themeTint, g_oDefaultFill.themeTint);
return oRes;
},
getRgbOrNull : function()
{
var nRes = null;
......@@ -681,6 +725,27 @@ function Border(val)
};
Border.prototype =
{
_mergeProperty : function(first, second, def)
{
if((null != def.isEqual && false == def.isEqual(first)) || (null == def.isEqual && def != first))
return first;
else
return second;
},
merge : function(border)
{
var oRes = new Border();
oRes.l = this._mergeProperty(this.l, border.l, g_oDefaultBorder.l).clone();
oRes.t = this._mergeProperty(this.t, border.t, g_oDefaultBorder.t).clone();
oRes.r = this._mergeProperty(this.r, border.r, g_oDefaultBorder.r).clone();
oRes.b = this._mergeProperty(this.b, border.b, g_oDefaultBorder.b).clone();
oRes.d = this._mergeProperty(this.d, border.d, g_oDefaultBorder.d).clone();
oRes.ih = this._mergeProperty(this.ih, border.ih, g_oDefaultBorder.ih).clone();
oRes.iv = this._mergeProperty(this.iv, border.iv, g_oDefaultBorder.iv).clone();
oRes.dd = this._mergeProperty(this.dd, border.dd, g_oDefaultBorder.dd);
oRes.du = this._mergeProperty(this.du, border.du, g_oDefaultBorder.du);
return oRes;
},
getDif : function(val)
{
var oRes = new Border(this);
......@@ -748,9 +813,9 @@ Border.prototype =
{
//border может быть не класса Border
this.clean();
this.merge(border);
this.mergeInner(border);
},
merge : function(border){
mergeInner : function(border){
//border может быть не класса Border
if(border){
if(border.l)
......@@ -828,6 +893,15 @@ function Num(val)
};
Num.prototype =
{
merge : function(num)
{
var oRes = new Num();
if(g_oDefaultNum.f != this.f)
oRes.f = this.f;
else
oRes.f = num.f;
return oRes;
},
getDif : function(val)
{
var oRes = new Num(this);
......@@ -891,6 +965,36 @@ function CellXfs()
};
CellXfs.prototype =
{
_mergeProperty : function(first, second)
{
var res = null;
if(null != first || null != second)
{
if(null == first)
res = second;
else if(null == second)
res = first;
else
{
if(null != first.merge)
res = first.merge(second);
else
res = from;
}
}
return res;
},
merge : function(xfs)
{
var oRes = new CellXfs();
oRes.border = this._mergeProperty(this.border, xfs.border);
oRes.fill = this._mergeProperty(this.fill, xfs.fill);
oRes.font = this._mergeProperty(this.font, xfs.font);
oRes.num = this._mergeProperty(this.num, xfs.num);
oRes.align = this._mergeProperty(this.align, xfs.align);
oRes.QuotePrefix = this._mergeProperty(this.QuotePrefix, xfs.QuotePrefix);
return oRes;
},
clone : function()
{
var res = new CellXfs();
......@@ -991,6 +1095,25 @@ function Align(val)
};
Align.prototype =
{
_mergeProperty : function(first, second, def)
{
if(false == def.isEqual(first))
return first;
else
return second;
},
merge : function(border)
{
var oRes = new Align();
oRes.hor = this._mergeProperty(this.hor, border.hor, g_oDefaultAlign.hor);
oRes.indent = this._mergeProperty(this.indent, border.indent, g_oDefaultAlign.indent);
oRes.RelativeIndent = this._mergeProperty(this.RelativeIndent, border.RelativeIndent, g_oDefaultAlign.RelativeIndent);
oRes.shrink = this._mergeProperty(this.shrink, border.shrink, g_oDefaultAlign.shrink);
oRes.angle = this._mergeProperty(this.angle, border.angle, g_oDefaultAlign.angle);
oRes.ver = this._mergeProperty(this.ver, border.ver, g_oDefaultAlign.ver);
oRes.wrap = this._mergeProperty(this.wrap, border.wrap, g_oDefaultAlign.wrap);
return oRes;
},
getDif : function(val)
{
var oRes = new Align(this);
......@@ -2338,8 +2461,9 @@ CCellValue.prototype =
if(CellValueType.String == this.type)
bNeedMeasure = false;
var oNumFormat;
if(null != this.cell.xfs && null != this.cell.xfs.num)
oNumFormat = oNumFormatCache.get(this.cell.xfs.num.f);
var xfs = this.cell.getStyle();
if(null != xfs && null != xfs.num)
oNumFormat = oNumFormatCache.get(xfs.num.f);
else
oNumFormat = oNumFormatCache.get(g_oDefaultNum.f);
if(false == oNumFormat.isGeneralFormat())
......@@ -2461,6 +2585,7 @@ CCellValue.prototype =
//применяем форматирование
var oValueText = null;
var oValueArray = null;
var xfs = this.cell.getStyle();
if(this.cell.sFormula)
oValueText = "="+this.cell.sFormula;
else
......@@ -2476,8 +2601,8 @@ CCellValue.prototype =
if(CellValueType.Number == this.type || CellValueType.String == this.type)
{
var oNumFormat;
if(null != this.cell.xfs && null != this.cell.xfs.num)
oNumFormat = oNumFormatCache.get(this.cell.xfs.num.f);
if(null != xfs && null != xfs.num)
oNumFormat = oNumFormatCache.get(xfs.num.f);
else
oNumFormat = oNumFormatCache.get(g_oDefaultNum.f);
if(CellValueType.String != this.type && null != oNumFormat && null != this.number)
......@@ -2527,7 +2652,7 @@ CCellValue.prototype =
else if(this.multiText)
oValueArray = this.multiText;
}
if(null != this.cell.xfs && true == this.cell.xfs.QuotePrefix && CellValueType.String == this.type)
if(null != xfs && true == xfs.QuotePrefix && CellValueType.String == this.type)
{
if(null != oValueText)
oValueText = "'" + oValueText;
......@@ -2544,8 +2669,9 @@ CCellValue.prototype =
if(null == sText && null == aText)
sText = "";
var cellfont;
if(null != this.cell.xfs && null != this.cell.xfs.font)
cellfont = this.cell.xfs.font;
var xfs = this.cell.getStyle();
if(null != xfs && null != xfs.font)
cellfont = xfs.font;
else
cellfont = g_oDefaultFont;
if(null != sText){
......@@ -2595,8 +2721,9 @@ CCellValue.prototype =
if("" == val)
return;
var oNumFormat;
if(null != this.cell.xfs && null != this.cell.xfs.num)
oNumFormat = oNumFormatCache.get(this.cell.xfs.num.f);
var xfs = this.cell.getStyle();
if(null != xfs && null != xfs.num)
oNumFormat = oNumFormatCache.get(xfs.num.f);
else
oNumFormat = oNumFormatCache.get(g_oDefaultNum.f);
if(oNumFormat.isTextFormat())
......
......@@ -2892,136 +2892,56 @@
_setColorStyleTable: function(id,idNext,ws,options, isOpenFilter)
{
var firstCell = ws.model.getCell(new CellAddress(id));
var endCell = ws.model.getCell(new CellAddress(idNext));
var firstCellAddress = new CellAddress(id);
var endCellAddress = new CellAddress(idNext);
var bbox = {r1: firstCellAddress.getRow0(), c1: firstCellAddress.getCol0(), r2: endCellAddress.getRow0(), c2: endCellAddress.getCol0()};
var style = options.TableStyleInfo;
if(style && style.Name && ws.model.workbook.TableStyles && ws.model.workbook.TableStyles.AllStyles && ws.model.workbook.TableStyles.AllStyles[style.Name])
{
var styleForCurTable = ws.model.workbook.TableStyles.AllStyles[style.Name];
var allRange = ws.model.getRange(new CellAddress(id), new CellAddress(idNext));
//allRange.setFill((styleForCurTable.wholeTable && styleForCurTable.wholeTable.dxf.fill) ? (styleForCurTable.wholeTable.dxf.fill) : null);
for(var row = firstCell.first.row - 1; row < endCell.first.row; row++)
{
for(var col = firstCell.first.col - 1; col < endCell.first.col; col++)
{
var range = ws.model.getCell(new CellAddress(row,col,0));
if(row == firstCell.first.row - 1 && options.TableColumns && !isOpenFilter)
{
var num = col - (firstCell.first.col - 1);
var nameColumn = options.TableColumns[num].Name;
range.setValue(nameColumn);
}
//clear prev table
//range.cleanFormat();
range.setFill(null);
range.setBorderSrc(null);
if(ws.model._getRow(row).hd)
continue;
if(row == firstCell.first.row - 1)//header row
{
this._setAllColorStyleForTable(range,styleForCurTable.headerRow,styleForCurTable.wholeTable);
}
else if(row == endCell.first.row - 1 && options.TotalsRowCount)//total row
{
this._setAllColorStyleForTable(range,styleForCurTable.totalRow,styleForCurTable.wholeTable);
}
else if(col == firstCell.first.col - 1 && options.TableStyleInfo.ShowFirstColumn && styleForCurTable.firstColumn)//first column
{
this._setAllColorStyleForTable(range,styleForCurTable.firstColumn,styleForCurTable.wholeTable);
}
else if(col == endCell.first.col - 1 && options.TableStyleInfo.ShowLastColumn && styleForCurTable.lastColumn)//last column
var styleForCurTable;
//todo из файла
var headerRowCount = 1;
var totalRowShown = 0;
var totalsRowCount = 0;
if(options.TotalsRowCount)
totalsRowCount = options.TotalsRowCount;
if(style && style.Name && ws.model.workbook.TableStyles && ws.model.workbook.TableStyles.AllStyles && (styleForCurTable = ws.model.workbook.TableStyles.AllStyles[style.Name]))
{
this._setAllColorStyleForTable(range,styleForCurTable.lastColumn,styleForCurTable.wholeTable);
}
else if(options.TableStyleInfo.ShowColumnStripes || options.TableStyleInfo.ShowRowStripes)//column stripes
{
//определяем четный/нечетный
if(options.TableStyleInfo.ShowColumnStripes)
{
var n = 0;
for(k = firstCell.first.col - 1; k < endCell.first.col;k++)
//заполняем названия столбцов
if(true != isOpenFilter && headerRowCount > 0 && options.TableColumns)
{
if(col == k)
for(var i = bbox.c1; i <= bbox.c2; i++)
{
n++;
break;
}
//if(!(options.TableStyleInfo.ShowFirstColumn && k == firstCell.first.col - 1) && !ws.model._getCol(k).hd)
n++;
var range = ws.model.getCell3(bbox.r1, i);
var num = i - bbox.c1;
var tableColumn = options.TableColumns[num];
if(null != tableColumn && null != tableColumn.Name)
range.setValue(tableColumn.Name);
}
if(n%2 != 0)
{
this._setAllColorStyleForTable(range,styleForCurTable.firstColumnStripe,styleForCurTable.wholeTable);
}
else
//заполняем стили
var aNoHiddenCol = new Array();
for(var i = bbox.c1; i <= bbox.c2; i++)
{
this._setAllColorStyleForTable(range,styleForCurTable.secondColumnStripe,styleForCurTable.wholeTable);
var col = ws.model._getColNoEmpty(i);
if(null == col || true != col.hd)
aNoHiddenCol.push(i);
}
}
if(options.TableStyleInfo.ShowRowStripes)
aNoHiddenCol.sort(fSortAscending);
var nRowIndex = 0;//с учетом скрытых
for(var i = bbox.r1; i <= bbox.r2; i++)
{
//определяем четная/нечетная
var n = 0;
for(var k = firstCell.first.row - 1; k < endCell.first.row;k++)
{
if(ws.model._getRow(k).hd)
if(true == ws.model._getRow(i).hd)
continue;
if(row == k)
{
n++;
break;
}
if(!(k == firstCell.first.row - 1) && !ws.model._getRow(k).hd)
n++;
}
var defaultStyles = styleForCurTable.wholeTable;
if(options.TableStyleInfo.ShowColumnStripes)
defaultStyles = undefined;
if(n%2 != 0)
{
this._setAllColorStyleForTable(range,styleForCurTable.firstRowStripe,defaultStyles);
}
else
{
this._setAllColorStyleForTable(range,styleForCurTable.secondRowStripe,defaultStyles);
}
}
}
//первая ячейка
if(styleForCurTable.firstHeaderCell && row == firstCell.first.row - 1 && col == firstCell.first.col - 1 && options.TableStyleInfo.ShowFirstColumn)
this._setAllColorStyleForTable(range,styleForCurTable.firstHeaderCell,styleForCurTable.wholeTable);
//последняя в первой строке
if(styleForCurTable.lastHeaderCell && row == firstCell.first.row - 1 && col == endCell.first.col - 1 && options.TableStyleInfo.ShowLastColumn)
this._setAllColorStyleForTable(range,styleForCurTable.lastHeaderCell,styleForCurTable.wholeTable);
//первая в последней строке
if(styleForCurTable.firstTotalCell && row == endCell.first.row - 1 && col == firstCell.first.col - 1 && options.TotalsRowCount && options.TableStyleInfo.ShowFirstColumn)
this._setAllColorStyleForTable(range,styleForCurTable.firstTotalCell,styleForCurTable.wholeTable);
//последняя ячейка
if(styleForCurTable.lastTotalCell && row == endCell.first.row - 1 && col == endCell.first.col - 1 && options.TotalsRowCount && options.TableStyleInfo.ShowLastColumn)
this._setAllColorStyleForTable(range,styleForCurTable.lastTotalCell,styleForCurTable.wholeTable);
}
}
//wholeTable
allRange.setBorder((styleForCurTable.wholeTable && styleForCurTable.wholeTable.dxf.border) ? (styleForCurTable.wholeTable.dxf.border) : null);
}
else//test
{
for(var row = firstCell.first.row - 1; row < endCell.first.row; row++)
{
for(var col = firstCell.first.col - 1; col < endCell.first.col; col++)
var nColIndex = 0;//с учетом скрытых
for(var j = 0, length = aNoHiddenCol.length; j < length; j++)
{
var range = ws.model.getCell(new CellAddress(row,col,0));
if(row == firstCell.first.row - 1)
range.setFill(new RgbColor(5210557));
var nColIndexAbs = aNoHiddenCol[j];
var cell = ws.model._getCell(i, nColIndexAbs);
var dxf = styleForCurTable.getStyle(bbox, i, nColIndexAbs, nRowIndex, nColIndex, style, headerRowCount, totalsRowCount);
if(null != dxf)
cell.setTableStyle(dxf);
nColIndex++;
}
nRowIndex++;
}
}
},
......@@ -4667,28 +4587,6 @@
return result;
},
_setAllColorStyleForTable: function(range,styles,wholeTable)
{
if(!styles)
{
if(wholeTable && wholeTable.dxf.fill)
range.setFill((wholeTable && wholeTable.dxf.fill) ? (wholeTable.dxf.fill.bg) : null);
}
else
{
if(!styles.dxf.fill && wholeTable && wholeTable.dxf.fill)
range.setFill((wholeTable && wholeTable.dxf.fill) ? (wholeTable.dxf.fill.bg) : null);
else
range.setFill((styles && styles.dxf.fill) ? (styles.dxf.fill.bg) : null);
range.setBorderSrc((styles && styles.dxf.border) ? (styles.dxf.border) : null);
}
//style for text
if(styles && styles.dxf.font)
this._setStyleForTextInTable(range,styles.dxf.font);
/*else if(wholeTable && wholeTable.dxf.font)
this._setStyleForTextInTable(range,wholeTable.dxf.font);*/
},
_dataFilterParse: function(data,val)
{
var curData = NumFormat.prototype.parseDate(val);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment