@ -220,7 +220,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CDefinedName *oox_defined)
bool printable = false ;
if ( name = = L " _xlnm.Print_Area " ) printable = true ;
if ( false ) //<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - range, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( false ) //если простой - range, составной - выражение
ods_context - > add_defined_range ( name , string2std_string ( oox_defined - > m_oRef . get2 ( ) ) , sheet_id , printable ) ;
else
ods_context - > add_defined_expression ( name , string2std_string ( oox_defined - > m_oRef . get2 ( ) ) , sheet_id , printable ) ;
@ -238,22 +238,22 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
convert ( oox_sheet - > m_oSheetFormatPr . GetPointer ( ) ) ;
convert ( oox_sheet - > m_oSheetPr . GetPointer ( ) ) ;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//Предобработка
//гиперлинки
for ( unsigned int hyp = 0 ; oox_sheet - > m_oHyperlinks . IsInit ( ) & & hyp < oox_sheet - > m_oHyperlinks - > m_arrItems . size ( ) ; hyp + + )
{
convert ( oox_sheet - > m_oHyperlinks - > m_arrItems [ hyp ] , oox_sheet ) ;
}
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//комментарии
std : : map < CString , OOX : : Spreadsheet : : CCommentItem * > : : iterator pos = oox_sheet - > m_mapComments . begin ( ) ;
while ( oox_sheet - > m_mapComments . end ( ) ! = pos )
{
convert ( pos - > second ) ;
pos + + ;
}
//todooo <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//todooo для оптимизации - перенести мержи в начало
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//колонки
ods_context - > start_columns ( ) ;
for ( unsigned int col = 0 ; oox_sheet - > m_oCols . IsInit ( ) & & col < oox_sheet - > m_oCols - > m_arrItems . size ( ) ; col + + )
{
@ -261,7 +261,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
}
ods_context - > end_columns ( ) ;
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//строки
if ( oox_sheet - > m_oSheetData . IsInit ( ) )
{
ods_context - > start_rows ( ) ;
@ -277,7 +277,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
oox_sheet - > m_oSheetData . reset ( ) ;
}
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//мержи
for ( unsigned int mrg = 0 ; oox_sheet - > m_oMergeCells . IsInit ( ) & & mrg < oox_sheet - > m_oMergeCells - > m_arrItems . size ( ) ; mrg + + )
{
if ( oox_sheet - > m_oMergeCells - > m_arrItems [ mrg ] - > m_oRef . IsInit ( ) )
@ -293,13 +293,13 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
convert ( pDrawing ) ;
}
}
////<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
////сортировки
//convert(oox_sheet->m_oSortState.GetPointer());
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//автофильтры
convert ( oox_sheet - > m_oAutofilter . GetPointer ( ) ) ;
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//условное форматирование
if ( oox_sheet - > m_arrConditionalFormatting . size ( ) > 0 )
{
ods_context - > start_conditional_formats ( ) ;
@ -309,7 +309,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
}
ods_context - > end_conditional_formats ( ) ;
}
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//выносные части таблицы
if ( oox_sheet - > m_oTableParts . IsInit ( ) )
{
for ( unsigned int i = 0 ; i < oox_sheet - > m_oTableParts - > m_arrItems . size ( ) ; i + + )
@ -658,7 +658,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CRPr *oox_run_pr)
text_properties - > content ( ) . style_text_position_ = odf_types : : text_position ( + 33. ) ; break ;
case SimpleTypes : : verticalalignrunSubscript :
//text_properties->content().style_text_position_ = odf_types::text_position(odf_types::text_position::Sub); break;
text_properties - > content ( ) . style_text_position_ = odf_types : : text_position ( - 33. ) ; break ; //<EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 58% - <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
text_properties - > content ( ) . style_text_position_ = odf_types : : text_position ( - 33. ) ; break ; //по умолчанию 58% - хуже выглядит
}
}
if ( oox_run_pr - > m_oScheme . IsInit ( ) & & oox_run_pr - > m_oScheme - > m_oFontScheme . IsInit ( ) )
@ -781,7 +781,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CCol *oox_column)
}
else
{
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
//нужно добавить дефолтный стиль для ячеек ДАННОГО листа
//???
style_cell_name = ods_context - > styles_context ( ) - > find_odf_style_name_default ( odf_types : : style_family : : TableCell ) ;
}
@ -917,7 +917,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views)
if ( oox_sheet_views - > m_arrItems [ i ] - > m_oSelection - > m_oSqref . IsInit ( ) )
{
//D6:D9 I9:I12 M16:M21 C20:I24
//<EFBFBD> OpenOffice <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
//в OpenOffice этого нету
}
}
if ( oox_sheet_views - > m_arrItems [ i ] - > m_oPane . IsInit ( ) )
@ -1004,7 +1004,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_p
//nullable<SimpleTypes::COnOff<>> m_oThickTop;
//nullable<SimpleTypes::COnOff<>> m_oZeroHeight;
//Cell default////////////////////////////
////<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :( <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> c <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ???? - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :(
////пока не красиво :( и главное НЕПРАВИЛЬНО c чегой то раз первый - то и делтный ???? - НЕФИГА - хз чё делать :(
//odf_writer::odf_style_state_ptr default_cell_style;
//ods_context->styles_context()->find_odf_style_state(0,odf_types::style_family::TableCell, default_cell_style, true);
//if (default_cell_style) ods_context->styles_context()->add_default(default_cell_style);
@ -1016,8 +1016,8 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_p
///Column///////////////////////////////////////////////////////////////////////////////////////
ods_context - > styles_context ( ) - > create_style ( L " " , odf_types : : style_family : : TableColumn , true , false , - 1 ) ;
{
double width = 8.1 ; // <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> MS Office 2010
//<EFBFBD> xlsx <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> . <EFBFBD> oo - <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
double width = 8.1 ; // из приложния MS Office 2010
//в xlsx необязательно задавать ширину (колонок) - дефолтное по приложению . в oo - обязательно
odf_writer : : style * style = dynamic_cast < odf_writer : : style * > ( ods_context - > styles_context ( ) - > last_state ( ) - > get_office_element ( ) . get ( ) ) ;
if ( style )
{
@ -1052,7 +1052,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_p
ods_context - > current_table ( ) . defaut_row_height_ = height ; //pt
row_properties - > style_table_row_properties_attlist_ . style_row_height_ = odf_types : : length ( odf_types : : length ( height , odf_types : : length : : pt ) . get_value_unit ( odf_types : : length : : cm ) , odf_types : : length : : cm ) ;
}
row_properties - > style_table_row_properties_attlist_ . style_use_optimal_row_height_ = true ; //???? <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> c<> <63> <EFBFBD> <EFBFBD> <20> <>
row_properties - > style_table_row_properties_attlist_ . style_use_optimal_row_height_ = true ; //???? не знаю cто ит ли
row_properties - > style_table_row_properties_attlist_ . common_break_attlist_ . fo_break_before_ = odf_types : : fo_break ( odf_types : : fo_break : : Auto ) ;
}
}
@ -1070,16 +1070,16 @@ void XlsxConverter::convert_styles()
OOX : : Spreadsheet : : CStyles * xlsx_styles = xlsx_document - > GetStyles ( ) ;
if ( ! xlsx_styles ) return ;
//todooo ?? <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Count ??
////////////<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//todooo ?? стоит ли обращать на параметр Count ??
////////////форматы данных
for ( unsigned int i = 0 ; xlsx_styles - > m_oNumFmts . IsInit ( ) & & i < xlsx_styles - > m_oNumFmts - > m_arrItems . size ( ) ; i + + )
{
convert ( xlsx_styles - > m_oNumFmts - > m_arrItems [ i ] ) ;
}
/////////////<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
/////////////стили ячеек
for ( unsigned int i = 0 ; xlsx_styles - > m_oCellStyleXfs . IsInit ( ) & & i < xlsx_styles - > m_oCellStyleXfs - > m_arrItems . size ( ) ; i + + )
{
//automatical, root - noname - <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> named
//automatical, root - noname - они тока для named
convert ( xlsx_styles - > m_oCellStyleXfs - > m_arrItems [ i ] , i , true , true ) ;
}
for ( unsigned int i = 0 ; xlsx_styles - > m_oCellStyles . IsInit ( ) & & i < xlsx_styles - > m_oCellStyles - > m_arrItems . size ( ) ; i + + ) //styles.xml
@ -1088,14 +1088,14 @@ void XlsxConverter::convert_styles()
convert ( xlsx_styles - > m_oCellStyles - > m_arrItems [ i ] ) ;
}
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
//кастомные стили ячеек
for ( unsigned int i = 0 ; xlsx_styles - > m_oCellXfs . IsInit ( ) & & i < xlsx_styles - > m_oCellXfs - > m_arrItems . size ( ) ; i + + )
{
//automatical, non root
convert ( xlsx_styles - > m_oCellXfs - > m_arrItems [ i ] , i , true , false ) ;
}
////////////<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
////////////стили условного форматирования
for ( unsigned int i = 0 ; xlsx_styles - > m_oDxfs . IsInit ( ) & & i < xlsx_styles - > m_oDxfs - > m_arrItems . size ( ) ; i + + )
{
convert ( xlsx_styles - > m_oDxfs - > m_arrItems [ i ] , i ) ;
@ -1176,7 +1176,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CFont * font, odf_writer::style_te
text_properties - > content ( ) . style_text_position_ = odf_types : : text_position ( + 33. ) ; break ;
case SimpleTypes : : verticalalignrunSubscript :
//text_properties->content().style_text_position_ = odf_types::text_position(odf_types::text_position::Sub); break;
text_properties - > content ( ) . style_text_position_ = odf_types : : text_position ( - 33. ) ; break ; //<EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 58% - <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
text_properties - > content ( ) . style_text_position_ = odf_types : : text_position ( - 33. ) ; break ; //по умолчанию 58% - хуже выглядит
}
}
if ( font - > m_oScheme . IsInit ( ) & & font - > m_oScheme - > m_oFontScheme . IsInit ( ) )
@ -1199,7 +1199,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CFont * font, odf_writer::style_te
void XlsxConverter : : convert ( double oox_size , _CP_OPT ( odf_types : : length ) & odf_size )
{
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> oox_size
//нужно сделать преобразования типов oox_size
//???
odf_size = odf_types : : length ( oox_size , odf_types : : length : : pt ) ;
}
@ -1285,7 +1285,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CAligment *aligment, odf_writer::s
cell_properties - > style_table_cell_properties_attlist_ . common_rotation_angle_attlist_ . style_rotation_angle_ = rot ;
cell_properties - > style_table_cell_properties_attlist_ . style_rotation_align_ = odf_types : : rotation_align ( odf_types : : rotation_align : : Bottom ) ;
}
else if ( rot = = 0xff ) //<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
else if ( rot = = 0xff ) //вертикальный текст
cell_properties - > style_table_cell_properties_attlist_ . style_direction_ = odf_types : : direction ( odf_types : : direction : : Ttb ) ;
}
@ -1428,7 +1428,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CBorderProp *borderProp, std::wstr
odf_border_prop = border_style + border_color ;
}
void XlsxConverter : : convert ( OOX : : Spreadsheet : : CColor * color , _CP_OPT ( odf_types : : color ) & odf_color ) //<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> odf_writer type???
void XlsxConverter : : convert ( OOX : : Spreadsheet : : CColor * color , _CP_OPT ( odf_types : : color ) & odf_color ) //стоит ли сюда тащить odf_writer type???
{
if ( ! color ) return ;
@ -1544,8 +1544,8 @@ void XlsxConverter::convert(OOX::Spreadsheet::CCellStyle * cell_style)
//if (parent_id >=0)
// ods_context->styles_context()->last_state()->set_parent_style_name(ods_context->styles_context()->find_odf_style_name(parent_id, odf_types::style_family::TableCell,true, true));
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> - <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> .. <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> )
//фишечка либры и о о - они Н Е ЧИТАЮТ автоматические стили для стилей
//придется копировать свойства все .. они автоматические стили удалить (не сохранять в файл )
odf_writer : : odf_style_state_ptr parent_style_state ;
if ( ods_context - > styles_context ( ) - > find_odf_style_state ( parent_id , odf_types : : style_family : : TableCell , parent_style_state , true , true ) & & parent_style_state )
@ -1644,7 +1644,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CXfs * xfc_style, int oox_id, bool
odf_writer : : odf_style_state_ptr parent_style_state ;
if ( ods_context - > styles_context ( ) - > find_odf_style_state ( id_parent , odf_types : : style_family : : TableCell , parent_style_state , true , false )
& & parent_style_state ) // <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
& & parent_style_state ) // сначала в поименованных
{
ods_context - > styles_context ( ) - > last_state ( ) - > set_parent_style_name ( parent_style_state - > get_name ( ) ) ;
@ -1696,7 +1696,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CCellAnchor *oox_anchor)
if ( oox_anchor - > m_oExt . IsInit ( ) )
{
}
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//собственно
if ( oox_anchor - > m_oPicture . IsInit ( ) )
{
convert ( oox_anchor - > m_oPicture . GetPointer ( ) ) ;
@ -1833,12 +1833,12 @@ void XlsxConverter::convert(OOX::Spreadsheet::CShape* oox_shape)
if ( oox_shape - > m_oNvSpPr . IsInit ( ) )
{
OoxConverter : : convert ( oox_shape - > m_oNvSpPr - > m_oCNvPr . GetPointer ( ) ) ; //<EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ...
convert ( oox_shape - > m_oNvSpPr - > m_oCNvSpPr . GetPointer ( ) ) ; //<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ... todooo
OoxConverter : : convert ( oox_shape - > m_oNvSpPr - > m_oCNvPr . GetPointer ( ) ) ; //имя, описалово, номер ...
convert ( oox_shape - > m_oNvSpPr - > m_oCNvSpPr . GetPointer ( ) ) ; //заблокированности ... todooo
}
if ( oox_shape - > m_oShapeStyle . IsInit ( ) )
{
//<EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//доп эффекты
}
if ( oox_shape - > m_oTxBody . IsInit ( ) )
@ -1884,7 +1884,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CGraphicFrame* oox_graphic_frame)
{
if ( oox_graphic_frame - > m_oChartGraphic - > m_oGraphicData - > m_oChart . IsInit ( ) & & oox_graphic_frame - > m_oChartGraphic - > m_oGraphicData - > m_oChart - > m_oRId . IsInit ( ) )
{
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//диаграмма
CString sId = oox_graphic_frame - > m_oChartGraphic - > m_oGraphicData - > m_oChart - > m_oRId - > GetValue ( ) ;
smart_ptr < OOX : : File > oFile = xlsx_current_drawing - > Find ( sId ) ;
@ -1907,7 +1907,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CGraphicFrame* oox_graphic_frame)
}
}
}
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//могут быть и другие типы объектов
}
}
ods_context - > drawing_context ( ) - > end_object ( ) ;
@ -1941,7 +1941,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
{
OoxConverter : : convert ( oox_shape - > m_oSpPr . GetPointer ( ) , oox_shape - > m_oShapeStyle . GetPointer ( ) ) ;
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .. <20> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :)
//частенько приплывает из стиля заполенение объекта .. а он то одномерный :)
odf_context ( ) - > drawing_context ( ) - > start_area_properties ( ) ;
odf_context ( ) - > drawing_context ( ) - > set_no_fill ( ) ;
odf_context ( ) - > drawing_context ( ) - > end_area_properties ( ) ;
@ -1967,7 +1967,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
void XlsxConverter : : convert ( OOX : : Spreadsheet : : CPic * oox_picture )
{
if ( ! oox_picture ) return ;
if ( ! oox_picture - > m_oBlipFill . IsInit ( ) ) return ; // <EFBFBD> <EFBFBD> <EFBFBD> e<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
if ( ! oox_picture - > m_oBlipFill . IsInit ( ) ) return ; // не вeр на я структура о о х
ods_context - > drawing_context ( ) - > start_drawing ( ) ;