<?xml version="1.0" encoding="UTF-8"?>


<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


	
<helpdocument version="1.0">
<meta>
<topic id="textsharedguidedragdrop_tablexml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Copying Spreadsheet Areas to Text Documents</title>
<filename>/text/shared/guide/dragdrop_table.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2006-04-18T13:28:27">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<bookmark xml-lang="en-US" branch="index" id="bm_id3154927"><bookmark_value>spreadsheets; copying areas to text documents</bookmark_value>
<bookmark_value>copying; sheet areas, to text documents</bookmark_value>
<bookmark_value>pasting;sheet areas in text documents</bookmark_value>
</bookmark><comment>mw added "pasting;"</comment>
<paragraph role="heading" id="hd_id3154927" xml-lang="en-US" level="1" l10n="U" oldref="24"><variable id="dragdrop_table"><link href="text/shared/guide/dragdrop_table.xhp" name="Copying Spreadsheet Areas to Text Documents">Copying Spreadsheet Areas to Text Documents</link>
</variable></paragraph>
<list type="ordered">
<listitem>
<paragraph role="listitem" id="par_id3155892" xml-lang="en-US" l10n="U" oldref="25">Open both the text document and the spreadsheet.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3147088" xml-lang="en-US" l10n="U" oldref="26">Select the sheet area you want to copy.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3149827" xml-lang="en-US" l10n="U" oldref="27">Point to the selected area and press the mouse button. Keep the mouse button pressed for a moment, then drag the area into the text document.</paragraph>
<paragraph role="listitem" id="par_id3152780" xml-lang="en-US" l10n="U" oldref="32"><switchinline select="sys"><caseinline select="WIN">If the documents are not visible next to each other, first drag the mouse pointer to the destination document button. Continue to hold down the mouse button. The document is displayed, and you can move the mouse pointer within the document. 
</caseinline></switchinline></paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3156346" xml-lang="en-US" l10n="U" oldref="28">Once the cursor is located in the place where you want to insert the sheet area, release the mouse button. The sheet area is inserted as an OLE object.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3154047" xml-lang="en-US" l10n="U" oldref="29">You can select and edit the OLE object at any time.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3149164" xml-lang="en-US" l10n="U" oldref="30">To edit the OLE object, double-click on it.</paragraph>
<paragraph role="listitem" id="par_id3155389" xml-lang="en-US" l10n="U" oldref="33">Alternatively, select the object and choose <emph>Edit - Object - Edit</emph> or choose <emph>Edit</emph> from the context menu. You edit the object in its own frame within the text document, but you see the icons and menu commands needed for spreadsheets.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3154860" xml-lang="en-US" l10n="U" oldref="31">Choose <emph>Open</emph> to open the source document of the OLE object.</paragraph>
</listitem>
</list>
<embed href="text/shared/00/00000004.xhp#related"/>
<embed href="text/shared/guide/dragdrop.xhp#dragdrop"/>
<embed href="text/shared/guide/dragdrop_graphic.xhp#dragdrop_graphic"/>
<embed href="text/shared/guide/dragdrop_fromgallery.xhp#dragdrop_fromgallery"/>
<embed href="text/shared/guide/dragdrop_gallery.xhp#dragdrop_gallery"/>
<switch select="appl">
<case select="WRITER"><embed href="text/swriter/guide/dragdroptext.xhp#dragdroptext"/>
</case>
</switch>
</body>
</helpdocument>
