Build 4.5.0.82 improves the handling of tables, particularly Excel table objects.
In xlsgen, tables can be used in a variety of ways. They were initially introduced as a way to program and run SQL requests. Then, when business intelligence capabilities were introduced to xlsgen, tables were the underlying model for manipulating data (i.e. InferFromWorksheet()). Actual Excel tables were available, see
tables for more information, but were not quite first-class citizen. For instance, what you couldn't do is for example add totals to them even though the table object model in xlsgen exposes subtotals beneath table breaks. The reality was that many of the table features were for "xlsgen" tables, not Excel table objects.
In this build, total rows are not ignored anymore for Excel table objects. It works like this :
xlsgen::IXlsTablePtr table = worksheet->Tables->Add();
table->DataSource->Range = L"R3C2:R6C6";
table->DataResults->Style->BuiltinStyle = xlsgen::tablestyle_light03;
// we have an "age" column in the table
xlsgen::IXlsTableBreaksPtr br = wksht->Tables->Item[1]->DataResults->Columns->ItemByName[L"age"]->Breaks;
// compute the average of "age"
br->Subtotals->Add( wksht->Tables->Item[1]->DataResults->Columns->ItemByName[L"age"] )->BuiltinFunction = xlsgen::subtotalfunc_average;
Also, table objects are now exposed in the automatic source code generator. It exposes table range definition, style and totals.