首页 后端开发 php教程 phpExcel的使用实例详解

phpExcel的使用实例详解

Jun 23, 2017 pm 01:30 PM
php phpexcel 使用方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

require_once './phpexcel/PHPExcel.php';

 

// 首先创建一个新的对象  PHPExcel object

$objPHPExcel = new PHPExcel();

 

// 设置文件的一些属性,在xls文件——>属性——>详细信息里可以看到这些值,xml表格里是没有这些值的

$objPHPExcel

      ->getProperties()  //获得文件属性对象,给下文提供设置资源

      ->setCreator( "Maarten Balliauw")                 //设置文件的创建者

      ->setLastModifiedBy( "Maarten Balliauw")          //设置最后修改者

      ->setTitle( "Office 2007 XLSX Test Document" )    //设置标题

      ->setSubject( "Office 2007 XLSX Test Document" //设置主题

      ->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes.") //设置备注

      ->setKeywords( "office 2007 openxml php")        //设置标记

      ->setCategory( "Test result file");                //设置类别

// 位置aaa  *为下文代码位置提供锚

// 给表格添加数据

$objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的

            ->setCellValue( 'A1', 'Hello' )         //给表的单元格设置数据

            ->setCellValue( 'B2', 'world!' )      //数据格式可以为字符串

            ->setCellValue( 'C1', 12)            //数字型

            ->setCellValue( 'D2', 12)            //

            ->setCellValue( 'D3', true )           //布尔型

            ->setCellValue( 'D4', '=SUM(C1:D2)' );//公式

 

//得到当前活动的表,注意下文教程中会经常用到$objActSheet

$objActSheet = $objPHPExcel->getActiveSheet();

// 位置bbb  *为下文代码位置提供锚

// 给当前活动的表设置名称

$objActSheet->setTitle('Simple2222');

代码还没有结束,可以复制下面的代码来决定我们将要做什么

 

我们将要做的是

1,直接生成一个文件

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

$objWriter->save('myexchel.xlsx');

 

2、提示下载文件

excel 2003 .xls

// 生成2003excel格式的xls文件

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="01simple.xls"');

header('Cache-Control: max-age=0');

 

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output');

exit;

 

excel 2007 .xlsx

// 生成2007excel格式的xlsx文件

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Disposition: attachment;filename="01simple.xlsx"');

header('Cache-Control: max-age=0');

 

$objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');

$objWriter->save( 'php://output');

exit;

 

pdf 文件

// 下载一个pdf文件

header('Content-Type: application/pdf');

header('Content-Disposition: attachment;filename="01simple.pdf"');

header('Cache-Control: max-age=0');

 

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');

$objWriter->save('php://output');

exit;

// 生成一个pdf文件

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');

$objWriter->save('a.pdf');

 

 

CSV 文件

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',' )  //设置分隔符

                                                                  ->setEnclosure('"' )    //设置包围符

                                                                  ->setLineEnding("\r\n" )//设置行分隔符

                                                                  ->setSheetIndex(0)      //设置活动表

                                                                  ->save(str_replace('.php' , '.csv' , __FILE__));

 

HTML 文件

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');       //将$objPHPEcel对象转换成html格式的

$objWriter->setSheetIndex(0);  //设置活动表

//$objWriter->setImagesRoot('http://www.example.com');

$objWriter->save(str_replace('.php', '.htm', __FILE__));     //保存文件

 

 

 

 

设置表格样式和数据格式

设置默认的字体和文字大小     锚:aaa

$objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');

$objPHPExcel->getDefaultStyle()->getFont()->setSize(20);

 

日期格式      锚:bbb

//获得秒值变量

$dateTimeNow = time();

//三个表格分别设置为当前实际的日期格式、时间格式、日期和时间格式

//首先将单元格的值设置为由PHPExcel_Shared_Date::PHPToExcel方法转换后的excel格式的值,然后用过得到该单元格的样式里面数字样式再设置显示格式

$objActSheet->setCellValue( 'C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));

$objActSheet->getStyle( 'C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);

$objActSheet->setCellValue( 'C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));

$objActSheet->getStyle( 'C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

$objActSheet->setCellValue( 'C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));

$objActSheet->getStyle( 'C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

//将E4到E13的数字格式设置为EUR

$objPHPExcel->getActiveSheet()->getStyle( 'E4:E13')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);

 

设置列的宽度      锚:bbb

$objActSheet->getColumnDimension( 'B')->setAutoSize(true);   //内容自适应

$objActSheet->getColumnDimension( 'A')->setWidth(30);         //30宽

 

设置文件打印的页眉和页脚      锚:bbb

//设置打印时候的页眉页脚(设置完了以后可以通过打印预览来看效果)字符串中的&*好像是一些变量

$objActSheet->getHeaderFooter()->setOddHeader( '&L&G&C&HPlease treat this document as confidential!');

$objActSheet->getHeaderFooter()->setOddFooter( '&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N' );

 

设置页面文字的方向和页面大小    锚:bbb

$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup:: ORIENTATION_LANDSCAPE);

$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup:: PAPERSIZE_A4);     //A4纸大小

 

为页眉添加图片     office中有效 wps中无效  锚:bbb

$objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();

$objDrawing->setName('PHPExcel logo');

$objDrawing->setPath('./images/phpexcel_logo.gif');

$objDrawing->setHeight(36);

$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT );

 

设置单元格的批注    锚:bbb

//给单元格添加批注

$objPHPExcel->getActiveSheet()->getComment( 'E13')->setAuthor('PHPExcel' );     //设置作者

$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13' )->getText()->createTextRun('PHPExcel:');  //添加批注

$objCommentRichText->getFont()->setBold( true);  //将现有批注加粗

$objPHPExcel->getActiveSheet()->getComment( 'E13')->getText()->createTextRun("\r\n" );      //添加更多批注

$objPHPExcel->getActiveSheet()->getComment( 'E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.' );

$objPHPExcel->getActiveSheet()->getComment( 'E13')->setWidth('100pt' );      //设置批注显示的宽高,在office中有效在wps中无效

$objPHPExcel->getActiveSheet()->getComment( 'E13')->setHeight('100pt' );

$objPHPExcel->getActiveSheet()->getComment( 'E13')->setMarginLeft('150pt' );

$objPHPExcel->getActiveSheet()->getComment( 'E13')->getFillColor()->setRGB('EEEEEE' );      //设置背景色,在office中有效在wps中无效

 

添加文字块    看效果图 office中有效 wps中无效  锚:bbb

//大概翻译  创建一个富文本框  office有效  wps无效

$objRichText = new PHPExcel_RichText();

$objRichText->createText('This invoice is ');    //写文字

//添加文字并设置这段文字粗体斜体和文字颜色

$objPayable = $objRichText->createTextRun( 'payable within thirty days after the end of the month');

$objPayable->getFont()->setBold( true);

$objPayable->getFont()->setItalic( true);

$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );

$objRichText->createText(', unless specified otherwise on the invoice.');

//将文字写到A18单元格中

$objPHPExcel->getActiveSheet()->getCell( 'A18')->setValue($objRichText);

 PHPExcel <wbr><wbr>学习笔记

 

合并拆分单元格    锚:bbb

$objPHPExcel->getActiveSheet()->mergeCells( &#39;A28:B28&#39;);      // A28:B28合并

$objPHPExcel->getActiveSheet()->unmergeCells( &#39;A28:B28&#39;);    // A28:B28再拆分

 

单元格密码保护    锚:bbb

// 单元格密码保护不让修改

$objPHPExcel->getActiveSheet()->getProtection()->setSheet( true);  // 为了使任何表保护,需设置为真

$objPHPExcel->getActiveSheet()->protectCells( &#39;A3:E13&#39;, &#39;PHPExcel&#39; ); // 将A3到E13保护  加密密码是 PHPExcel

$objPHPExcel->getActiveSheet()->getStyle( &#39;B1&#39;)->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); //去掉保护

 

设置单元格字体   锚:bbb

//将B1的文字字体设置为Candara,20号的粗体下划线有背景色

$objPHPExcel->getActiveSheet()->getStyle( &#39;B1&#39;)->getFont()->setName(&#39;Candara&#39; );

$objPHPExcel->getActiveSheet()->getStyle( &#39;B1&#39;)->getFont()->setSize(20);

$objPHPExcel->getActiveSheet()->getStyle( &#39;B1&#39;)->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle( &#39;B1&#39;)->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);

$objPHPExcel->getActiveSheet()->getStyle( &#39;B1&#39;)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);

 

文字对齐方式  锚:bbb

$objPHPExcel->getActiveSheet()->getStyle( &#39;D11&#39;)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);    //水平方向上对齐

$objPHPExcel->getActiveSheet()->getStyle(&#39;A18&#39;)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);//水平方向上两端对齐

$objPHPExcel->getActiveSheet()->getStyle( &#39;A18&#39;)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);       //垂直方向上中间居中

 

设置单元格边框  锚:bbb

$styleThinBlackBorderOutline = array(

       &#39;borders&#39; => array (

             &#39;outline&#39; => array (

                   &#39;style&#39; => PHPExcel_Style_Border::BORDER_THIN,   //设置border样式

                   //&#39;style&#39; => PHPExcel_Style_Border::BORDER_THICK,  另一种样式

                   &#39;color&#39; => array (&#39;argb&#39; => &#39;FF000000&#39;),          //设置border颜色

            ),

      ),

);

$objPHPExcel->getActiveSheet()->getStyle( &#39;A4:E10&#39;)->applyFromArray($styleThinBlackBorderOutline);

 

背景填充颜色     锚:bbb

//设置填充的样式和背景色

$objPHPExcel->getActiveSheet()->getStyle( &#39;A1:E1&#39;)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);

$objPHPExcel->getActiveSheet()->getStyle( &#39;A1:E1&#39;)->getFill()->getStartColor()->setARGB(&#39;FF808080&#39;);

 

综合设置样例

$objPHPExcel->getActiveSheet()->getStyle( &#39;A3:E3&#39;)->applyFromArray(

             array(

                   &#39;font&#39;    => array (

                         &#39;bold&#39;      => true

                   ),

                   &#39;alignment&#39; => array (

                         &#39;horizontal&#39; => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT ,

                  ),

                   &#39;borders&#39; => array (

                         &#39;top&#39;     => array (

                               &#39;style&#39; => PHPExcel_Style_Border::BORDER_THIN

                        )

                  ),

                   &#39;fill&#39; => array (

                         &#39;type&#39;       => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR ,

                         &#39;rotation&#39;   => 90,

                         &#39;startcolor&#39; => array (

                               &#39;argb&#39; => &#39;FFA0A0A0&#39;

                         ),

                         &#39;endcolor&#39;   => array (

                               &#39;argb&#39; => &#39;FFFFFFFF&#39;

                         )

                  )

            )

);

PHPExcel <wbr><wbr>学习笔记

 

 

给单元格内容设置url超链接      锚:bbb

$objActSheet->getCell(&#39;E26&#39;)->getHyperlink()->setUrl( &#39;http://www.phpexcel.net&#39;);    //超链接url地址

$objActSheet->getCell(&#39;E26&#39;)->getHyperlink()->setTooltip( &#39;Navigate to website&#39;);  //鼠标移上去连接提示信息

 

给表中添加图片     锚:bbb

$objDrawing = new PHPExcel_Worksheet_Drawing();

$objDrawing->setName(&#39;Paid&#39;);

$objDrawing->setDescription(&#39;Paid&#39;);

$objDrawing->setPath(&#39;./images/paid.png&#39;); //图片引入位置

$objDrawing->setCoordinates(&#39;B15&#39;); //图片添加位置

$objDrawing->setOffsetX(210);

$objDrawing->setRotation(25);

$objDrawing->setHeight(36);

$objDrawing->getShadow()->setVisible (true );

$objDrawing->getShadow()->setDirection(45);

$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

//还可以添加有gd库生产的图片,详细见自带实例25

 

创建一个新工作表和设置工作表标签颜色     锚:bbb

$objExcel->createSheet();

$objPHPExcel->setActiveSheetIndex(1);   //设置第2个表为活动表,提供操作句柄

$objExcel->getSheet(1)->setTitle( &#39;测试2&#39;);   //直接得到第二个表进行设置,将工作表重新命名为测试2

$objPHPExcel->getActiveSheet()->getTabColor()->setARGB( &#39;FF0094FF&#39;);     //设置标签颜色

 

添加或删除行和列     锚:bbb

$objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10);   //在行6前添加10行

$objPHPExcel->getActiveSheet()->removeRow(6, 10);                  //从第6行往后删去10行

$objPHPExcel->getActiveSheet()->insertNewColumnBefore( &#39;E&#39;, 5);    //从第E列前添加5类

$objPHPExcel->getActiveSheet()->removeColumn( &#39;E&#39;, 5);             //从E列开始往后删去5列

 

隐藏和显示某列     锚:bbb

$objPHPExcel->getActiveSheet()->getColumnDimension( &#39;C&#39;)->setVisible(false);          //隐藏

$objPHPExcel->getActiveSheet()->getColumnDimension( &#39;D&#39;)->setVisible(true);           //显示

 

重新命名活动的表的标签名称     锚:bbb

$objPHPExcel->getActiveSheet()->setTitle( &#39;Invoice&#39;);

 

设置工作表的安全

$objPHPExcel->getActiveSheet()->getProtection()->setPassword( &#39;PHPExcel&#39;);

$objPHPExcel->getActiveSheet()->getProtection()->setSheet( true); // This should be enabled in order to enable any of the following!

$objPHPExcel->getActiveSheet()->getProtection()->setSort( true);

$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows( true);

$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells( true);

 

设置文档安全   锚:bbb

$objPHPExcel->getSecurity()->setLockWindows( true);

$objPHPExcel->getSecurity()->setLockStructure( true);

$objPHPExcel->getSecurity()->setWorkbookPassword( "PHPExcel");     //设置密码

 

样式复制      锚:bbb

//将B2的样式复制到B3至B7

$objPHPExcel->getActiveSheet()->duplicateConditionalStyle(

                        $objPHPExcel->getActiveSheet()->getStyle( &#39;B2&#39;)->getConditionalStyles(),

                         &#39;B3:B7&#39;

                   );

 

Add conditional formatting    锚:bbb

echo date(&#39;H:i:s&#39; ) , " Add conditional formatting" , PHP_EOL;

$objConditional1 = new PHPExcel_Style_Conditional ();

$objConditional1->setConditionType(PHPExcel_Style_Conditional ::CONDITION_CELLIS );

$objConditional1->setOperatorType(PHPExcel_Style_Conditional ::OPERATOR_BETWEEN );

$objConditional1->addCondition(&#39;200&#39;);

$objConditional1->addCondition(&#39;400&#39;);

 

设置分页(主要用于打印)    锚:bbb

//设置某单元格为页尾

$objPHPExcel->getActiveSheet()->setBreak( &#39;A&#39; . $i, PHPExcel_Worksheet::BREAK_ROW );

 

 

用数组填充表    锚:bbb

//吧数组的内容从A2开始填充

$dataArray = array( array("2010" ,    "Q1""United States",  790),

                   array("2010" ,    "Q2""United States",  730),

                  );

$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, &#39;A2&#39;);

 

设置自动筛选     锚:bbb

$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());

//$objPHPExcel->getActiveSheet()->calculateWorksheetDimension()....得到A1行的所有内容个

 

打印出的到所有的公式

$objCalc = PHPExcel_Calculation::getInstance();

print_r($objCalc->listFunctionNames())

 

设置单元格值的范围     锚:bbb

$objValidation = $objPHPExcel->getActiveSheet()->getCell(&#39;B3&#39; )->getDataValidation();

$objValidation->setType( PHPExcel_Cell_DataValidation:: TYPE_WHOLE );

$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation:: STYLE_STOP );

$objValidation->setAllowBlank(true);

$objValidation->setShowInputMessage( true);            //设置显示提示信息

$objValidation->setShowErrorMessage( true);            //设置显示错误信息

$objValidation->setErrorTitle(&#39;Input error&#39;);    //错误标题

//$objValidation->setShowDropDown(true);

$objValidation->setError(&#39;Only numbers between 10 and 20 are allowed!&#39;);       //错误内容

$objValidation->setPromptTitle(&#39;Allowed input&#39;);       //设置提示标题

$objValidation->setPrompt(&#39;Only numbers between 10 and 20 are allowed.&#39;); //提示内容

$objValidation->setFormula1(10);     //设置最大值

$objValidation->setFormula2(120);    //设置最小值

//或者这样设置  $objValidation->setFormula2(1,5,6,7);  设置值是1,5,6,7中的一个数

 

其他

$objPHPExcel->getActiveSheet()->getStyle( &#39;B5&#39;)->getAlignment()->setShrinkToFit(true); //长度不够显示的时候是否自动换行

$objPHPExcel->getActiveSheet()->getStyle( &#39;B5&#39;)->getAlignment()->setShrinkToFit(true); //自动转换显示字体大小,使内容能够显示

$objPHPExcel->getActiveSheet()->getCell(B14)->getValue();           //获得值,有可能得到的是公式

$objPHPExcel->getActiveSheet()->getCell(B14)->getCalculatedValue();//获得算出的值

 

 

导入或读取文件

//通过PHPExcel_IOFactory::load方法来载入一个文件,load会自动判断文件的后缀名来导入相应的处理类,读取格式保含xlsx/xls/xlsm/ods/slk/csv/xml/gnumeric

require_once &#39;../Classes/PHPExcel/IOFactory.php&#39;;

$objPHPExcel = PHPExcel_IOFactory::load(

//吧载入的文件默认表(一般都是第一个)通过toArray方法来返回一个多维数组

$dataArray = $objPHPExcel->getActiveSheet()->toArray();

//读完直接写到一个xlsx文件里

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &#39;Excel2007&#39;); //$objPHPExcel是上文中读的资源

$objWriter->save(str_replace(&#39;.php&#39;, &#39;.xlsx&#39;, __FILE__));

 

读取xml文件

$objReader = PHPExcel_IOFactory:: createReader(&#39;Excel2003XML&#39; );

$objPHPExcel = $objReader->load( "Excel2003XMLTest.xml" );

读取ods文件

$objReader = PHPExcel_IOFactory:: createReader(&#39;OOCalc&#39; );

$objPHPExcel = $objReader->load("OOCalcTest.ods" );

读取numeric文件

$objReader = PHPExcel_IOFactory:: createReader(&#39;Gnumeric&#39; );

$objPHPExcel = $objReader->load( "GnumericTest.gnumeric" );

读取slk文件

$objPHPExcel = PHPExcel_IOFactory:: load("SylkTest.slk" );

 

 

循环遍历数据

$objReader = PHPExcel_IOFactory::createReader(&#39;Excel2007&#39; ); //创建一个2007的读取对象

$objPHPExcel = $objReader->load ("05featuredemo.xlsx" );             //读取一个xlsx文件

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {     //遍历工作表

       echo &#39;Worksheet - &#39; , $worksheet->getTitle() , PHP_EOL;

       foreach ($worksheet->getRowIterator() as $row) {       //遍历行

             echo &#39;    Row number - &#39; , $row->getRowIndex() , PHP_EOL;

            $cellIterator = $row->getCellIterator();   //得到所有列

            $cellIterator->setIterateOnlyExistingCells( false); // Loop all cells, even if it is not set

             foreach ($cellIterator as $cell) {  //遍历列

                   if (!is_null($cell)) {  //如果列不给空就得到它的坐标和计算的值

                         echo &#39;        Cell - &#39; , $cell->getCoordinate() , &#39; - &#39; , $cell->getCalculatedValue() , PHP_EOL;

                  }

            }

      }

}

 

把数组插入的表中

//插入的数据 3行数据

$data = array( array(&#39;title&#39;      => &#39;Excel for dummies&#39;,

                     &#39;price&#39;      => 17.99,

                     &#39;quantity&#39;   => 2

                           ),

                    array(&#39;title&#39;       => &#39;PHP for dummies&#39;,

                           &#39;price&#39;      => 15.99,

                           &#39;quantity&#39;  => 1

                           ),

                    array(&#39;title&#39;      => &#39;Inside OOP&#39;,

                           &#39;price&#39;      => 12.95,

                           &#39;quantity&#39;  => 1

                           )

                   );

$baseRow = 5;      //指定插入到第5行后

foreach($data as $r => $dataRow) {

      $row = $baseRow + $r;    //$row是循环操作行的行号

      $objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1);  //在操作行的号前加一空行,这空行的行号就变成了当前的行号

       //对应的咧都附上数据和编号

      $objPHPExcel->getActiveSheet()->setCellValue( &#39;A&#39;.$row, $r+1);    

      $objPHPExcel->getActiveSheet()->setCellValue( &#39;B&#39;.$row, $dataRow[&#39;title&#39;]);

      $objPHPExcel->getActiveSheet()->setCellValue( &#39;C&#39;.$row, $dataRow[&#39;price&#39;]);

      $objPHPExcel->getActiveSheet()->setCellValue( &#39;D&#39;.$row, $dataRow[&#39;quantity&#39;]);

      $objPHPExcel->getActiveSheet()->setCellValue( &#39;E&#39;.$row, &#39;=C&#39;.$row.&#39;*D&#39; .$row);

}

$objPHPExcel->getActiveSheet()->removeRow($baseRow-1,1);     //最后删去第4行,这是示例需要,在此处为大家提供删除实例

登录后复制

以上是phpExcel的使用实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1279
29
C# 教程
1257
24
PHP和Python:解释了不同的范例 PHP和Python:解释了不同的范例 Apr 18, 2025 am 12:26 AM

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

在PHP和Python之间进行选择:指南 在PHP和Python之间进行选择:指南 Apr 18, 2025 am 12:24 AM

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP和Python:深入了解他们的历史 PHP和Python:深入了解他们的历史 Apr 18, 2025 am 12:25 AM

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP的影响:网络开发及以后 PHP的影响:网络开发及以后 Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

继续使用PHP:耐力的原因 继续使用PHP:耐力的原因 Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

如果session_start()被多次调用会发生什么? 如果session_start()被多次调用会发生什么? Apr 25, 2025 am 12:06 AM

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

IIS和PHP的兼容性:深度潜水 IIS和PHP的兼容性:深度潜水 Apr 22, 2025 am 12:01 AM

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

session_start()函数的意义是什么? session_start()函数的意义是什么? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

See all articles