------------------ Share sheet -------------------------------------//
961113
public void showShareSheet(@NonNull Activity activity, @NonNull LinkProperties linkProperties, @NonNull ShareSheetStyle style, @Nullable Branch.BranchLinkShareListener callback) {
        showShareSheet(activity, linkProperties, style, callback, null);
    }
97100
private function _writeDrawings(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $includeCharts = FALSE)
	{
		$chartCount = ($includeCharts) ? $pSheet->getChartCollection()->count() : 0;
		// If sheet contains drawings, add the relationships
		if (($pSheet->getDrawingCollection()->count() > 0) ||
			($chartCount > 0)) {
			$objWriter->startElement('drawing');
			$objWriter->writeAttribute('r:id', 'rId1');
			$objWriter->endElement();
		}
	}
525037
private function _writeSheetViews(PHPExcel_Shared_XMLWriter $objWriter = NULL, PHPExcel_Worksheet $pSheet = NULL)
	{
		// sheetViews
		$objWriter->startElement('sheetViews');

			// Sheet selected?
			$sheetSelected = false;
			if ($this->getParentWriter()->getPHPExcel()->getIndex($pSheet) == $this->getParentWriter()->getPHPExcel()->getActiveSheetIndex())
				$sheetSelected = true;


			// sheetView
			$objWriter->startElement('sheetView');
			$objWriter->writeAttribute('tabSelected',		$sheetSelected ? '1' : '0');
			$objWriter->writeAttribute('workbookViewId',	'0');

				// Zoom scales
				if ($pSheet->getSheetView()->getZoomScale() != 100) {
					$objWriter->writeAttribute('zoomScale',	$pSheet->getSheetView()->getZoomScale());
				}
				if ($pSheet->getSheetView()->getZoomScaleNormal() != 100) {
					$objWriter->writeAttribute('zoomScaleNormal',	$pSheet->getSheetView()->getZoomScaleNormal());
				}

				// View Layout Type
				if ($pSheet->getSheetView()->getView() !== PHPExcel_Worksheet_SheetView::SHEETVIEW_NORMAL) {
					$objWriter->writeAttribute('view',	$pSheet->getSheetView()->getView());
				}

				// Gridlines
				if ($pSheet->getShowGridlines()) {
					$objWriter->writeAttribute('showGridLines',	'true');
				} else {
					$objWriter->writeAttribute('showGridLines',	'false');
				}

				// Row and column headers
				if ($pSheet->getShowRowColHeaders()) {
					$objWriter->writeAttribute('showRowColHeaders', '1');
				} else {
					$objWriter->writeAttribute('showRowColHeaders', '0');
				}

				// Right-to-left
				if ($pSheet->getRightToLeft()) {
					$objWriter->writeAttribute('rightToLeft',	'true');
				}

				$activeCell = $pSheet->getActiveCell();

				// Pane
				$pane = '';
				$topLeftCell = $pSheet->getFreezePane();
				if (($topLeftCell != '') && ($topLeftCell != 'A1')) {
					$activeCell = $topLeftCell;
					// Calculate freeze coordinates
					$xSplit = $ySplit = 0;

					list($xSplit, $ySplit) = PHPExcel_Cell::coordinateFromString($topLeftCell);
					$xSplit = PHPExcel_Cell::columnIndexFromString($xSplit);

					// pane
					$pane = 'topRight';
					$objWriter->startElement('pane');
					if ($xSplit > 1)
						$objWriter->writeAttribute('xSplit',	$xSplit - 1);
					if ($ySplit > 1) {
						$objWriter->writeAttribute('ySplit',	$ySplit - 1);
						$pane = ($xSplit > 1) ? 'bottomRight' : 'bottomLeft';
					}
					$objWriter->writeAttribute('topLeftCell',	$topLeftCell);
					$objWriter->writeAttribute('activePane',	$pane);
					$objWriter->writeAttribute('state',		'frozen');
					$objWriter->endElement();

					if (($xSplit > 1) && ($ySplit > 1)) {
						//	Write additional selections if more than two panes (ie both an X and a Y split)
						$objWriter->startElement('selection');	$objWriter->writeAttribute('pane', 'topRight');		$objWriter->endElement();
						$objWriter->startElement('selection');	$objWriter->writeAttribute('pane', 'bottomLeft');	$objWriter->endElement();
					}
				}

				// Selection
//				if ($pane != '') {
					//	Only need to write selection element if we have a split pane
					//		We cheat a little by over-riding the active cell selection, setting it to the split cell
					$objWriter->startElement('selection');
					if ($pane != '') {
						$objWriter->writeAttribute('pane', $pane);
					}
					$objWriter->writeAttribute('activeCell', $activeCell);
					$objWriter->writeAttribute('sqref', $activeCell);
					$objWriter->endElement();
//				}

			$objWriter->endElement();

		$objWriter->endElement();
	}
83371
function TrackShareSchema() {
    /**
     * The track of value
     * @member
     * @type { Track }
     */
    this.track = Object.create(Track.prototype);
    /**
     * The album of value
     * @member
     * @type { Album }
     */
    this.album = Object.create(Album.prototype);
    /**
     * The sharedTo value
     * @member
     */
    this.sharedTo = null;

}
1236136
private function _buildWorksheetEschers()
	{
		// 1-based index to BstoreContainer
		$blipIndex = 0;
		$lastReducedSpId = 0;
		$lastSpId = 0;

		foreach ($this->_phpExcel->getAllsheets() as $sheet) {
			// sheet index
			$sheetIndex = $sheet->getParent()->getIndex($sheet);

			$escher = null;

			// check if there are any shapes for this sheet
			$filterRange = $sheet->getAutoFilter()->getRange();
			if (count($sheet->getDrawingCollection()) == 0 && empty($filterRange)) {
				continue;
			}

			// create intermediate Escher object
			$escher = new PHPExcel_Shared_Escher();

			// dgContainer
			$dgContainer = new PHPExcel_Shared_Escher_DgContainer();

			// set the drawing index (we use sheet index + 1)
			$dgId = $sheet->getParent()->getIndex($sheet) + 1;
			$dgContainer->setDgId($dgId);
			$escher->setDgContainer($dgContainer);

			// spgrContainer
			$spgrContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer();
			$dgContainer->setSpgrContainer($spgrContainer);

			// add one shape which is the group shape
			$spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer();
			$spContainer->setSpgr(true);
			$spContainer->setSpType(0);
			$spContainer->setSpId(($sheet->getParent()->getIndex($sheet) + 1) << 10);
			$spgrContainer->addChild($spContainer);

			// add the shapes

			$countShapes[$sheetIndex] = 0; // count number of shapes (minus group shape), in sheet

			foreach ($sheet->getDrawingCollection() as $drawing) {
				++$blipIndex;

				++$countShapes[$sheetIndex];

				// add the shape
				$spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer();

				// set the shape type
				$spContainer->setSpType(0x004B);
				// set the shape flag
				$spContainer->setSpFlag(0x02);

				// set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index)
				$reducedSpId = $countShapes[$sheetIndex];
				$spId = $reducedSpId
					| ($sheet->getParent()->getIndex($sheet) + 1) << 10;
				$spContainer->setSpId($spId);

				// keep track of last reducedSpId
				$lastReducedSpId = $reducedSpId;

				// keep track of last spId
				$lastSpId = $spId;

				// set the BLIP index
				$spContainer->setOPT(0x4104, $blipIndex);

				// set coordinates and offsets, client anchor
				$coordinates = $drawing->getCoordinates();
				$offsetX = $drawing->getOffsetX();
				$offsetY = $drawing->getOffsetY();
				$width = $drawing->getWidth();
				$height = $drawing->getHeight();

				$twoAnchor = PHPExcel_Shared_Excel5::oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height);

				$spContainer->setStartCoordinates($twoAnchor['startCoordinates']);
				$spContainer->setStartOffsetX($twoAnchor['startOffsetX']);
				$spContainer->setStartOffsetY($twoAnchor['startOffsetY']);
				$spContainer->setEndCoordinates($twoAnchor['endCoordinates']);
				$spContainer->setEndOffsetX($twoAnchor['endOffsetX']);
				$spContainer->setEndOffsetY($twoAnchor['endOffsetY']);

				$spgrContainer->addChild($spContainer);
			}

			// AutoFilters
			if(!empty($filterRange)){
				$rangeBounds = PHPExcel_Cell::rangeBoundaries($filterRange);
				$iNumColStart = $rangeBounds[0][0];
				$iNumColEnd = $rangeBounds[1][0];

				$iInc = $iNumColStart;
				while($iInc <= $iNumColEnd){
					++$countShapes[$sheetIndex];

					// create an Drawing Object for the dropdown
					$oDrawing  = new PHPExcel_Worksheet_BaseDrawing();
					// get the coordinates of drawing
					$cDrawing   = PHPExcel_Cell::stringFromColumnIndex($iInc - 1) . $rangeBounds[0][1];
					$oDrawing->setCoordinates($cDrawing);
					$oDrawing->setWorksheet($sheet);

					// add the shape
					$spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer();
					// set the shape type
					$spContainer->setSpType(0x00C9);
					// set the shape flag
					$spContainer->setSpFlag(0x01);

					// set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index)
					$reducedSpId = $countShapes[$sheetIndex];
					$spId = $reducedSpId
						| ($sheet->getParent()->getIndex($sheet) + 1) << 10;
					$spContainer->setSpId($spId);

					// keep track of last reducedSpId
					$lastReducedSpId = $reducedSpId;

					// keep track of last spId
					$lastSpId = $spId;

					$spContainer->setOPT(0x007F, 0x01040104); // Protection -> fLockAgainstGrouping
					$spContainer->setOPT(0x00BF, 0x00080008); // Text -> fFitTextToShape
					$spContainer->setOPT(0x01BF, 0x00010000); // Fill Style -> fNoFillHitTest
					$spContainer->setOPT(0x01FF, 0x00080000); // Line Style -> fNoLineDrawDash
					$spContainer->setOPT(0x03BF, 0x000A0000); // Group Shape -> fPrint

					// set coordinates and offsets, client anchor
					$endCoordinates = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::stringFromColumnIndex($iInc - 1));
					$endCoordinates .= $rangeBounds[0][1] + 1;

					$spContainer->setStartCoordinates($cDrawing);
					$spContainer->setStartOffsetX(0);
					$spContainer->setStartOffsetY(0);
					$spContainer->setEndCoordinates($endCoordinates);
					$spContainer->setEndOffsetX(0);
					$spContainer->setEndOffsetY(0);

					$spgrContainer->addChild($spContainer);
					$iInc++;
				}
			}

			// identifier clusters, used for workbook Escher object
			$this->_IDCLs[$dgId] = $lastReducedSpId;

			// set last shape index
			$dgContainer->setLastSpId($lastSpId);

			// set the Escher object
			$this->_writerWorksheets[$sheetIndex]->setEscher($escher);
		}
	}
972812
static function consumable_effects($sheet, $quality, $lang)
    {
        if (!is_array($sheet)) {
            $sheet = ryzom_item_info($sheet);
        }

        if ($sheet === false || empty($sheet['properties'])) {
            return array();
        }

        $effects = array();
        foreach ($sheet['properties'] as $property) {
            $params = explode(':', $property);
            if (empty($params)) {
                continue;
            }

            $name = strtoupper(array_shift($params));
            switch ($name) {
                case 'SP_CHG_CHARAC':
                    if (isset(self::$characteristic_to_int[strtolower($params[0])])) {
                        $ui = ryzom_translate('uiCaracId' . self::$characteristic_to_int[strtolower($params[0])] . '.uxt', $lang);
                        $bonus = (int)($params[1] * $quality + $params[2]);
                        $time = (int)$params[3];
                        if ($bonus > 0) {
                            $tt = ryzom_translate('uiItemConsumableEffectUpCharac.uxt', $lang);
                        } else {
                            $tt = ryzom_translate('uiItemConsumableEffectDownCharac.uxt', $lang);
                        }

                        $effects[] = strtr($tt, array(
                            '%charac' => $ui,
                            '%bonus' => $bonus,
                            '%minutes' => (int)($time / 60),
                            '%secondes' => (int)($time % 60),
                        ));
                    }
                    break;
                case 'SP_LIFE_AURA':
                case 'SP_LIFE_AURA2':
                case 'SP_STAMINA_AURA':
                case 'SP_STAMINA_AURA2':
                case 'SP_SAP_AURA':
                case 'SP_SAP_AURA2':
                    $uiKeys = array(
                        'SP_LIFE_AURA' => 'uiItemConsumableEffectLifeAura.uxt',
                        'SP_LIFE_AURA2' => 'uiItemConsumableEffectLifeAura.uxt',
                        'SP_STAMINA_AURA' => 'uiItemConsumableEffectStaminaAura.uxt',
                        'SP_STAMINA_AURA2' => 'uiItemConsumableEffectStaminaAura.uxt',
                        'SP_SAP_AURA' => 'uiItemConsumableEffectSapAura.uxt',
                        'SP_SAP_AURA2' => 'uiItemConsumableEffectSapAura.uxt',
                    );

                    $tt = ryzom_translate($uiKeys[$name], $lang);

                    if (substr($name, -1) == '2') {
                        $params[0] *= $quality;
                        $params[3] = 0;
                        $params[4] = 0;
                    }
                    $effects[] = strtr($tt, array(
                        '%modifier' => (int)$params[0],
                        '%minutes' => (int)($params[1] / 60),
                        '%secondes' => (int)($params[1] % 60),
                        '%radius' => (int)$params[2],
                        '%targetDisableTime' => (int)$params[3],
                        '%userDisableTime' => (int)$params[4],
                    ));
                    break;
                case 'SP_MOD_DEFENSE':
                case 'SP_MOD_MELEE_SUCCESS':
                case 'SP_MOD_RANGE_SUCCESS':
                case 'SP_MOD_MAGIC_SUCCESS':
                case 'SP_MOD_CRAFT_SUCCESS':
                case 'SP_MOD_FORAGE_SUCCESS':
                    $array = array(
                        'SP_MOD_DEFENSE_SUCCESS' => array(
                            0 => 'uiItemConsumableEffectModDefenseSuccess.uxt',
                            'dodge' => 'uiItemConsumableEffectModDodgeSuccess.uxt',
                            'parry' => 'uiItemConsumableEffectModParrySuccess.uxt',
                        ),
                        'SP_MOD_MELEE_SUCCESS' => 'uiItemConsumableEffectModMeleeSuccess.uxt',
                        'SP_MOD_RANGE_SUCCESS' => 'uiItemConsumableEffectModRangeSuccess.uxt',
                        'SP_MOD_MAGIC_SUCCESS' => 'uiItemConsumableEffectModMagicSuccess.uxt',
                        'SP_MOD_CRAFT_SUCCESS' => 'uiItemConsumableEffectModCraftSuccess.uxt',
                        'SP_MOD_FORAGE_SUCCESS' => array(
                            'commonecosystem' => 'uiItemConsumableEffectModForageSuccess.uxt',
                            'desert' => 'uiItemConsumableEffectModDesertForageSuccess.uxt',
                            'forest' => 'uiItemConsumableEffectModForestForageSuccess.uxt',
                            'lacustre' => 'uiItemConsumableEffectModLacustreForageSuccess.uxt',
                            'jungle' => 'uiItemConsumableEffectModJungleForageSuccess.uxt',
                            'primaryroot' => 'uiItemConsumableEffectModPrimaryRootForageSuccess.uxt',
                        ),
                    );
                    if (isset($array[$name])) {
                        $tt = $array[$name];
                        $index = 0;
                        if (is_array($tt)) {
                            if (isset($tt[strtolower($params[0])])) {
                                $tt = $tt[strtolower($params[0])];
                            } else if (isset($tt[0])) {
                                $tt = $tt[0];
                            } else {
                                $tt = false;
                            }
                            $index = 1;
                        }
                        if ($tt !== false) {
                            $tt = ryzom_translate($tt, $lang);
                            $effects[] = strtr($tt, array(
                                '%modifier' => ($params[$index] * $quality + $params[$index + 1]),
                                '%minutes' => (int)($params[$index + 2] / 60),
                                '%secondes' => (int)($params[$index + 2] % 60),
                            ));
                        }
                    }
                    break;
                default:
                    //
                    break;
            }
        }

        return $effects;
    }
956387
public static void removeOtherSheets(Sheet sheet) {
        val wb = sheet.getWorkbook();

        List<String> deletedNames = Lists.newArrayList();
        for (int i = 0; i < wb.getNumberOfSheets(); ++i) {
            val sheetName = wb.getSheetName(i);
            if (!sheetName.equals(sheet.getSheetName())) {
                deletedNames.add(sheetName);
            }
        }

        deletedNames.forEach(x -> wb.removeSheetAt(wb.getSheetIndex(x)));
    }
423308
function share(elem, options) {
        var data = mixin({}, defaults, options || {}, dataset(elem));

        if (data.imageSelector) {
            data.image = querySelectorAlls(data.imageSelector).map(function(item) {
                return item.src;
            }).join('||');
        }

        addClass(elem, 'share-component social-share');
        createIcons(elem, data);
        createWechat(elem, data);

        elem.initialized = true;
    }
1013995
function(ql) {
				var fm      = ql.fm,
			mimes   = fm.arrayFlip(ql.options.sharecadMimes || []),
			preview = ql.preview,
			win     = ql.window,
			node;
			
		if (ql.options.sharecadMimes.length) {
			ql.addIntegration({
				title: 'ShareCAD.org CAD and 3D-Models viewer',
				link: 'https://sharecad.org/DWGOnlinePlugin'
			});
		}

		preview.on(ql.evUpdate, function(e) {
			var file = e.file;
			if (mimes[file.mime.toLowerCase()]) {
				var win     = ql.window,
					loading, url;
				
				if (file.url == '1') {
					preview.hide();
					$('<div class="elfinder-quicklook-info-data"><button class="elfinder-info-button">'+fm.i18n('getLink')+'</button></div>').appendTo(ql.info.find('.elfinder-quicklook-info'))
					.on('click', function() {
						var self = $(this);
						self.html('<span class="elfinder-info-spinner">');
						fm.request({
							data : {cmd : 'url', target : file.hash},
							preventDefault : true
						})
						.always(function() {
							self.html('');
						})
						.done(function(data) {
							var rfile = fm.file(file.hash);
							file.url = rfile.url = data.url || '';
							if (file.url) {
								preview.trigger({
									type: ql.evUpdate,
									file: file,
									forceUpdate: true
								});
							}
						});
					});
				}
				if (file.url !== '' && file.url != '1') {
					e.stopImmediatePropagation();
					preview.one('change', function() {
						loading.remove();
						node.off('load').remove();
						node = null;
					}).addClass('elfinder-overflow-auto');
					
					loading = $('<div class="elfinder-quicklook-info-data"> '+fm.i18n('nowLoading')+'<span class="elfinder-info-spinner"></div>').appendTo(ql.info.find('.elfinder-quicklook-info'));
					
					url = fm.convAbsUrl(fm.url(file.hash));
					node = $('<iframe class="elfinder-quicklook-preview-iframe" scrolling="no"/>')
						.css('background-color', 'transparent')
						.appendTo(preview)
						.on('load', function() {
							ql.hideinfo();
							loading.remove();
							ql.preview.after(ql.info);
							$(this).css('background-color', '#fff').show();
						})
						.on('error', function() {
							loading.remove();
							ql.preview.after(ql.info);
						})
						.attr('src', '//sharecad.org/cadframe/load?url=' + encodeURIComponent(url));
					
					ql.info.after(ql.preview);
				}
			}
			
		});
	}
826645
@Override
    public void setShareDataSourceWithCMP(final Boolean sharing) {
        if (TraceComponent.isAnyTracingEnabled() && TRACE.isDebugEnabled()) {
            SibTr.debug(this, TRACE, "setShareDataSourceWithCMP", sharing);
        }
        _shareDataSourceWithCMP = sharing;
    }
377328
async function toExcel(opts) {
  const { collection, documents, columns, stream, filename } = opts;
  const workbook = new Excel.stream.xlsx.WorkbookWriter({
    stream,
    filename,
    useStyles: true,
    useSharedStrings: true
  });

  workbook.created = new Date();
  workbook.modified = new Date();

  const sheet = workbook.addWorksheet('sheet 1');

  sheet.columns = columns.map(column => {
    const path = column.field;
    const namePath = collection.parsePath(path);

    return {
      header: column.label || namePath.pathLabel,
      key: path,
      width: 10
    };
  });

  for (const document of documents) {
    const row = {};

    for (const column of columns) {
      const path = column.field;
      const namePath = collection.parsePath(path);

      row[path] = namePath.get(document);
    }

    sheet.addRow(row).commit();
  }

  sheet.commit();

  await workbook.commit();
}
322192
public Sheet getSheet() {
        if (sheet != null) {
            return sheet;
        }

        UIComponent parent = getParent();
        while (parent != null && !(parent instanceof Sheet)) {
            parent = parent.getParent();
        }
        return (Sheet) parent;
    }
511584
function(options) {
  options = options || {};

  // in a workbook, each sheet will have a number
  this.id = options.id;
  this.orderNo = options.orderNo;

  // and a name
  this.name = options.name || `Sheet${this.id}`;

  // add a state
  this.state = options.state || 'visible';

  // rows allows access organised by row. Sparse array of arrays indexed by row-1, col
  // Note: _rows is zero based. Must subtract 1 to go from cell.row to index
  this._rows = [];

  // column definitions
  this._columns = null;

  // column keys (addRow convenience): key ==> this._collumns index
  this._keys = {};

  // keep record of all merges
  this._merges = {};

  // record of all row and column pageBreaks
  this.rowBreaks = [];

  this._workbook = options.workbook;

  // for tabColor, default row height, outline levels, etc
  this.properties = Object.assign(
    {},
    {
      defaultRowHeight: 15,
      dyDescent: 55,
      outlineLevelCol: 0,
      outlineLevelRow: 0,
    },
    options.properties
  );

  // for all things printing
  this.pageSetup = Object.assign(
    {},
    {
      margins: { left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3 },
      orientation: 'portrait',
      horizontalDpi: 4294967295,
      verticalDpi: 4294967295,
      fitToPage: !!(options.pageSetup && ((options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) && !options.pageSetup.scale)),
      pageOrder: 'downThenOver',
      blackAndWhite: false,
      draft: false,
      cellComments: 'None',
      errors: 'displayed',
      scale: 100,
      fitToWidth: 1,
      fitToHeight: 1,
      paperSize: undefined,
      showRowColHeaders: false,
      showGridLines: false,
      firstPageNumber: undefined,
      horizontalCentered: false,
      verticalCentered: false,
      rowBreaks: null,
      colBreaks: null,
    },
    options.pageSetup
  );

  this.dataValidations = new DataValidations();

  // for freezepanes, split, zoom, gridlines, etc
  this.views = options.views || [];

  this.autoFilter = options.autoFilter || null;

  // for images, etc
  this._media = [];
}
1131177
private function writeSheets(PHPExcel_Shared_XMLWriter $objWriter)
    {
        $pPHPExcel = $this->getParentWriter()->getPHPExcel(); /* @var $pPHPExcel PHPExcel */

        $sheet_count = $pPHPExcel->getSheetCount();
        for ($i = 0; $i < $sheet_count; $i++) {
            //$this->getWriterPart('Worksheet')->writeWorksheet());
            $objWriter->startElement('table:table');
                $objWriter->writeAttribute('table:name', $pPHPExcel->getSheet($i)->getTitle());
                $objWriter->writeElement('office:forms');
                $objWriter->startElement('table:table-column');
                    $objWriter->writeAttribute('table:number-columns-repeated', self::NUMBER_COLS_REPEATED_MAX);
                $objWriter->endElement();
                $this->writeRows($objWriter, $pPHPExcel->getSheet($i));
            $objWriter->endElement();
        }
    }
668057
def buildsheet(sheet, options)
      ydiff, xdiff = 0,0
      if !options[:paginate].nil?
        ydiff = options[:paginate][0] * (options[:paginate][1]-1)
      elsif !options[:cellrange].nil?
        xdiff = x(options[:cellrange].begin)
        ydiff = y(options[:cellrange].begin)
      end
      m=Sheet.build(sheet[:cells].last.y+1-ydiff, sheet[:cells].last.x+1-xdiff) {nil}
      sheet[:cells].each do |c|
        m[c.y-ydiff, c.x-xdiff] = c.to_fmt
      end
      return m
    end
898109
private void initializeShowCustomBottomSheetPreference() {
        Preference showCustomBottomSheetPreference =
                findPreference(getString(R.string.show_custom_bottom_sheet_preference_key));
        showCustomBottomSheetPreference
                .setOnPreferenceClickListener(new OnPreferenceClickListener() {

                    @Override
                    public boolean onPreferenceClick(final Preference preference) {
                        initializeCustomBottomSheet();
                        customBottomSheet.show();
                        return true;
                    }

                });
    }
712907
def workbook_data(self):
        """"""
        document = XML(
            fn=os.path.splitext(self.fn)[0]+'.xml', 
            root=Element.workbook())
        shared_strings = [
            str(t.text) for t in 
            self.xml('xl/sharedStrings.xml')
                .root.xpath(".//xl:t", namespaces=self.NS)]
        for key in self.sheets.keys():
            worksheet = self.sheets[key].transform(XT, shared_strings=shared_strings)
            document.root.append(worksheet.root)
        return document