Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2388 jpm 1
<?php
2
/**
3
 * PHPExcel
4
 *
5
 * Copyright (c) 2006 - 2013 PHPExcel
6
 *
7
 * This library is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
12
 * This library is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with this library; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20
 *
21
 * @category   PHPExcel
22
 * @package    PHPExcel_Writer_Excel2007
23
 * @copyright  Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
24
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
25
 * @version    ##VERSION##, ##DATE##
26
 */
27
 
28
 
29
/**
30
 * PHPExcel_Writer_Excel2007_DocProps
31
 *
32
 * @category   PHPExcel
33
 * @package    PHPExcel_Writer_Excel2007
34
 * @copyright  Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
35
 */
36
class PHPExcel_Writer_Excel2007_DocProps extends PHPExcel_Writer_Excel2007_WriterPart
37
{
38
/**
39
	 * Write docProps/app.xml to XML format
40
	 *
41
	 * @param 	PHPExcel	$pPHPExcel
42
	 * @return 	string 		XML Output
43
	 * @throws 	PHPExcel_Writer_Exception
44
	 */
45
	public function writeDocPropsApp(PHPExcel $pPHPExcel = null)
46
	{
47
		// Create XML writer
48
		$objWriter = null;
49
		if ($this->getParentWriter()->getUseDiskCaching()) {
50
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
51
		} else {
52
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
53
		}
54
 
55
		// XML header
56
		$objWriter->startDocument('1.0','UTF-8','yes');
57
 
58
		// Properties
59
		$objWriter->startElement('Properties');
60
			$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
61
			$objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
62
 
63
			// Application
64
			$objWriter->writeElement('Application', 	'Microsoft Excel');
65
 
66
			// DocSecurity
67
			$objWriter->writeElement('DocSecurity', 	'0');
68
 
69
			// ScaleCrop
70
			$objWriter->writeElement('ScaleCrop', 		'false');
71
 
72
			// HeadingPairs
73
			$objWriter->startElement('HeadingPairs');
74
 
75
				// Vector
76
				$objWriter->startElement('vt:vector');
77
					$objWriter->writeAttribute('size', 		'2');
78
					$objWriter->writeAttribute('baseType', 	'variant');
79
 
80
					// Variant
81
					$objWriter->startElement('vt:variant');
82
						$objWriter->writeElement('vt:lpstr', 	'Worksheets');
83
					$objWriter->endElement();
84
 
85
					// Variant
86
					$objWriter->startElement('vt:variant');
87
						$objWriter->writeElement('vt:i4', 		$pPHPExcel->getSheetCount());
88
					$objWriter->endElement();
89
 
90
				$objWriter->endElement();
91
 
92
			$objWriter->endElement();
93
 
94
			// TitlesOfParts
95
			$objWriter->startElement('TitlesOfParts');
96
 
97
				// Vector
98
				$objWriter->startElement('vt:vector');
99
					$objWriter->writeAttribute('size', 		$pPHPExcel->getSheetCount());
100
					$objWriter->writeAttribute('baseType',	'lpstr');
101
 
102
					$sheetCount = $pPHPExcel->getSheetCount();
103
					for ($i = 0; $i < $sheetCount; ++$i) {
104
						$objWriter->writeElement('vt:lpstr', $pPHPExcel->getSheet($i)->getTitle());
105
					}
106
 
107
				$objWriter->endElement();
108
 
109
			$objWriter->endElement();
110
 
111
			// Company
112
			$objWriter->writeElement('Company', 			$pPHPExcel->getProperties()->getCompany());
113
 
114
			// Company
115
			$objWriter->writeElement('Manager', 			$pPHPExcel->getProperties()->getManager());
116
 
117
			// LinksUpToDate
118
			$objWriter->writeElement('LinksUpToDate', 		'false');
119
 
120
			// SharedDoc
121
			$objWriter->writeElement('SharedDoc', 			'false');
122
 
123
			// HyperlinksChanged
124
			$objWriter->writeElement('HyperlinksChanged', 	'false');
125
 
126
			// AppVersion
127
			$objWriter->writeElement('AppVersion', 			'12.0000');
128
 
129
		$objWriter->endElement();
130
 
131
		// Return
132
		return $objWriter->getData();
133
	}
134
 
135
	/**
136
	 * Write docProps/core.xml to XML format
137
	 *
138
	 * @param 	PHPExcel	$pPHPExcel
139
	 * @return 	string 		XML Output
140
	 * @throws 	PHPExcel_Writer_Exception
141
	 */
142
	public function writeDocPropsCore(PHPExcel $pPHPExcel = null)
143
	{
144
		// Create XML writer
145
		$objWriter = null;
146
		if ($this->getParentWriter()->getUseDiskCaching()) {
147
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
148
		} else {
149
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
150
		}
151
 
152
		// XML header
153
		$objWriter->startDocument('1.0','UTF-8','yes');
154
 
155
		// cp:coreProperties
156
		$objWriter->startElement('cp:coreProperties');
157
			$objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
158
			$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
159
			$objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
160
			$objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
161
			$objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
162
 
163
			// dc:creator
164
			$objWriter->writeElement('dc:creator',			$pPHPExcel->getProperties()->getCreator());
165
 
166
			// cp:lastModifiedBy
167
			$objWriter->writeElement('cp:lastModifiedBy', 	$pPHPExcel->getProperties()->getLastModifiedBy());
168
 
169
			// dcterms:created
170
			$objWriter->startElement('dcterms:created');
171
				$objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
172
				$objWriter->writeRawData(date(DATE_W3C, 	$pPHPExcel->getProperties()->getCreated()));
173
			$objWriter->endElement();
174
 
175
			// dcterms:modified
176
			$objWriter->startElement('dcterms:modified');
177
				$objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
178
				$objWriter->writeRawData(date(DATE_W3C, 	$pPHPExcel->getProperties()->getModified()));
179
			$objWriter->endElement();
180
 
181
			// dc:title
182
			$objWriter->writeElement('dc:title', 			$pPHPExcel->getProperties()->getTitle());
183
 
184
			// dc:description
185
			$objWriter->writeElement('dc:description', 		$pPHPExcel->getProperties()->getDescription());
186
 
187
			// dc:subject
188
			$objWriter->writeElement('dc:subject', 			$pPHPExcel->getProperties()->getSubject());
189
 
190
			// cp:keywords
191
			$objWriter->writeElement('cp:keywords', 		$pPHPExcel->getProperties()->getKeywords());
192
 
193
			// cp:category
194
			$objWriter->writeElement('cp:category', 		$pPHPExcel->getProperties()->getCategory());
195
 
196
		$objWriter->endElement();
197
 
198
		// Return
199
		return $objWriter->getData();
200
	}
201
 
202
	/**
203
	 * Write docProps/custom.xml to XML format
204
	 *
205
	 * @param 	PHPExcel	$pPHPExcel
206
	 * @return 	string 		XML Output
207
	 * @throws 	PHPExcel_Writer_Exception
208
	 */
209
	public function writeDocPropsCustom(PHPExcel $pPHPExcel = null)
210
	{
211
		$customPropertyList = $pPHPExcel->getProperties()->getCustomProperties();
212
		if (empty($customPropertyList)) {
213
			return;
214
		}
215
 
216
		// Create XML writer
217
		$objWriter = null;
218
		if ($this->getParentWriter()->getUseDiskCaching()) {
219
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
220
		} else {
221
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
222
		}
223
 
224
		// XML header
225
		$objWriter->startDocument('1.0','UTF-8','yes');
226
 
227
		// cp:coreProperties
228
		$objWriter->startElement('Properties');
229
			$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties');
230
			$objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
231
 
232
 
233
			foreach($customPropertyList as $key => $customProperty) {
234
				$propertyValue = $pPHPExcel->getProperties()->getCustomPropertyValue($customProperty);
235
				$propertyType = $pPHPExcel->getProperties()->getCustomPropertyType($customProperty);
236
 
237
				$objWriter->startElement('property');
238
					$objWriter->writeAttribute('fmtid', 	'{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
239
					$objWriter->writeAttribute('pid', 		$key+2);
240
					$objWriter->writeAttribute('name', 		$customProperty);
241
 
242
					switch($propertyType) {
243
						case 'i' :
244
							$objWriter->writeElement('vt:i4', 		$propertyValue);
245
							break;
246
						case 'f' :
247
							$objWriter->writeElement('vt:r8', 		$propertyValue);
248
							break;
249
						case 'b' :
250
							$objWriter->writeElement('vt:bool', 	($propertyValue) ? 'true' : 'false');
251
							break;
252
						case 'd' :
253
							$objWriter->startElement('vt:filetime');
254
								$objWriter->writeRawData(date(DATE_W3C, $propertyValue));
255
							$objWriter->endElement();
256
							break;
257
						default :
258
							$objWriter->writeElement('vt:lpwstr', 	$propertyValue);
259
							break;
260
					}
261
 
262
				$objWriter->endElement();
263
			}
264
 
265
 
266
		$objWriter->endElement();
267
 
268
		// Return
269
		return $objWriter->getData();
270
	}
271
 
272
}