/// <summary> /// Создание ячейки /// </summary> /// <param name="excelCell">Данные ячейки</param> /// <param name="isTop">Это первая строка</param> /// <param name="isBotton">Это последняя строка</param> /// <param name="isLeft">Это первая ячейка в строке</param> /// <param name="isRight">Это последняя ячейка в строке</param> /// <returns>Созданная ячейка</returns> private XElement AddCell( XMLExcelCell excelCell, bool isTop, bool isBotton, bool isLeft, bool isRight ) { return new XElement( _ss + "Cell", new XAttribute( _ss + "StyleID", GetStyleID( excelCell, isTop, isBotton, isLeft, isRight ) ), new XElement( _ss + "Data", new XAttribute( _ss + "Type", ConvertType( excelCell.CellType ) ), excelCell.CellValue ) ); }
/// <summary> /// Получения кода стиля по данным ячейки /// </summary> /// <param name="excelCell">Данные ячейки</param> /// <param name="isTop">Это первая строка</param> /// <param name="isBotton">Это последняя строка</param> /// <param name="isLeft">Это первая ячейка в строке</param> /// <param name="isRight">Это последняя ячейка в строке</param> /// <returns>Код ячейки универсальной разметки</returns> private string GetStyleID( XMLExcelCell excelCell, bool isTop, bool isBotton, bool isLeft, bool isRight ) { int styleID = 0; switch ( excelCell.CellType ) { case XMLExcelCellType.String: styleID = 105; break; case XMLExcelCellType.Number: styleID = 115; break; case XMLExcelCellType.Money: styleID = 125; break; default: styleID = 105; break; } if ( isTop ) styleID -= 3; if ( isBotton ) styleID += 3; if ( isLeft ) styleID -= 1; if ( isRight ) styleID += 1; styleID += (int)excelCell.cellAlignment; return "s" + styleID.ToString(); }
/// <summary> /// Добавление строки в таблицу /// </summary> /// <param name="isTop">Это первая строка</param> /// <param name="isBotton">Это последняя строка</param> /// <param name="rowData">Данные строки</param> public void AddImportCartRow( bool isTop, bool isBotton, XMLExcelCell[] rowData ) { XElement row = new XElement( _ss + "Row", new XAttribute( _ss + "AutoFitHeight", "0" ) ); for ( int i = 0; i < rowData.Count(); i++ ) { row.Add( AddCell( rowData[i], isTop, isBotton, i == 0, i == rowData.Count() - 1 ) ); } _workTable.Add( row ); }