ホームページ >バックエンド開発 >PHPチュートリアル >PHPExcelを使ってExcelを操作する使用例分析_PHPチュートリアル

PHPExcelを使ってExcelを操作する使用例分析_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:00:15999ブラウズ

PHPExcel を使用して Excel を操作する例の分析

この記事では、主に PHPExcel を使用して Excel を操作するための一般的なテクニックを分析します。これは非常に実用的です。必要な場合は参照してください

この記事の例では、PHPExcel を使用して Excel を操作する方法を分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです:

PHPExcelのダウンロードアドレス:
http://www.codeplex.com/PHPExcel
http://www.phpexcel.net
開発パッケージの Tests ディレクトリに詳細な使用例があり、ファイルは utf-8 で保存されます。

1.ヘッダー部分:

?

2.Excel に書き込みます:

?

1

2

3

4

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

header("Content-Disposition:attachment;filename=sample.xls");

header("Pragma:no-cache");

header("有効期限:0");

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

//クラスを含める

require_once('Classes/PHPExcel.php');

require_once('Classes/PHPExcel/Writer/Excel2007.php');

$objPHPExcel = 新しい PHPExcel();

//プロパティを設定します 設置文書プロパティ

$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");

$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");

$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX テスト ドキュメント");

$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX テスト ドキュメント");

$objPHPExcel->getProperties()->setDescription("Office 2007 XLSX のテスト ドキュメント。PHP クラスを使用して生成されました。");

$objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");

$objPHPExcel->getProperties()->setCategory("テスト結果ファイル");

//データを追加します 追加データ

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');// 位置を指定可能

$objPHPExcel->getActiveSheet()->setCellValue('A2', true);

$objPHPExcel->getActiveSheet()->setCellValue('A3', false);

$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');

$objPHPExcel->getActiveSheet()->setCellValue('B3', 2);

$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');

$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');

//循環

for($i = 1;$i

$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i);

$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'テスト値');

}

//日期格式化

$objPHPExcel->getActiveSheet()->setCellValue('D1', time());

$objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);

//コメントを追加 追加注释

$objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel');

$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:');

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

$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("rn");

$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('現在の請求書の合計金額 (VAT を除く)');

//リッチテキスト文字列追加文字追加可设置样式

$objRichText = new PHPExcel_RichText( $objPHPExcel->getActiveSheet()->getCell('A18') );

$objRichText->createText('この請求書は ');

$objPayable = $objRichText->createTextRun('月末から 30 日以内にお支払い可能');

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

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

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

$objRichText->createText('、請求書に別途指定がない限り。');

//セルを結合并分离单元格

$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');

$objPHPExcel->getActiveSheet()->unmergeCells('A18:E22');

//細胞を守る 保护单元格

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);//ワークシート保護を有効にするには true に設定する必要があります!

$objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');

//セル番号の形式を設定する 数字格式化

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

$objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );

//列幅を設定する

$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);

$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);

//フォント设置字体を設定します

$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');

$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);

$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);

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

//配置を設定する

$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);

$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->setWrapText(true);

//列の境界線を設定する 设置列边框

$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objPHPExcel->getActiveSheet()->getStyle('A10')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objPHPExcel->getActiveSheet()->getStyle('E10')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);

$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);

//境界線の色を設定します

$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');

$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');

$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');

$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getRight()->getColor()->setARGB('FF993300');

//セットフィル設置充填

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');

//シートにハイパーリンクを追加します 追加链接

$objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');

$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net');

$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Web サイトに移動');

$objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

//ワークシートに図面を追加します 追加图片​​

$objDrawing = 新しい PHPExcel_Worksheet_Drawing();

$objDrawing->setName('ロゴ');

$objDrawing->setDescription('ロゴ');

$objDrawing->setPath('./images/officelogo.jpg');

$objDrawing->setHeight(36);

$objDrawing->set座標('B15');

$objDrawing->setOffsetX(110);

$objDrawing->setRotation(25);

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

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

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

//行と列の挿入と削除を試してみましょう

$objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10);

$objPHPExcel->getActiveSheet()->removeRow(6, 10);

$objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5);

$objPHPExcel->getActiveSheet()->removeColumn('E', 5);

//条件付き書式を追加します

$objConditional1 = 新しい PHPExcel_Style_Conditional();

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

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

$objConditional1->setCondition('0');

$objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objConditional1->getStyle()->getFont()->setBold(true);

//オートフィルターを自動过滤に設定します

$objPHPExcel->getActiveSheet()->setAutoFilter('A1:C9');

//「電話」と「ファックス」列を非表示にする隐藏列

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);

$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);

//ドキュメントのセキュリティを設定します 设置文档安全

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

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

$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");

//セットシートセキュリティ設置工作表安全

$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);// 以下のいずれかを有効にするには、これを有効にする必要があります!

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

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

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

//計算データ计算

echo 'B14 [=COUNT(B2:B12)] の値: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getownedValue() 。 「ん」;

//アウトラインレベルを設定します

$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1);

$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setVisible(false);

$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setCollapsed(true);

//ペインをフリーズ

$objPHPExcel->getActiveSheet()->freezePane('A2');

//先頭で繰り返す行

$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);

//データ検証を設定します

$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->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('入力エラー');

$objValidation->setError('番号は使用できません!');

$objValidation->setPromptTitle('許可された入力');

$objValidation->setPrompt('10 から 20 までの数値のみが許可されます。');

$objValidation->setFormula1(10);

$objValidation->setFormula2(20);

$objPHPExcel->getActiveSheet()->getCell('B3')->setDataValidation($objValidation);

//デフォルトシート创建新的工作标签の後に新しいワークシートを作成します

$objPHPExcel->createSheet();

$objPHPExcel->setActiveSheetIndex(1);

//ヘッダーとフッターを設定します。奇数/偶数で異なるヘッダーが使用されていない場合は、奇数ヘッダーが想定されます。 页眉页脚

$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&C&Hこのドキュメントは機密情報として扱ってください!');

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

//ページの向きとサイズの方向大小を設定します

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

$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

//シートの名前を変更します 重命名工作表标签

$objPHPExcel->getActiveSheet()->setTitle('Simple');

//アクティブ シート インデックスを最初のシートに設定すると、Excel はこれを最初のシートとして開きます

$objPHPExcel->setActiveSheetIndex(0);

//Excel 2007 ファイル保存

$objWriter = 新しい PHPExcel_Writer_Excel2007($objPHPExcel);

$objWriter->save(str_replace('.php', '.xlsx', __FILE__));

//Excel 5ファイル保存

require_once('Classes/PHPExcel/Writer/Excel5.php');

$objWriter = 新しい PHPExcel_Writer_Excel5($objPHPExcel);

$objWriter->save(str_replace('.php', '.xls', __FILE__));

//1.6.2新版保存

require_once('Classes/PHPExcel/IOFactory.php');

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

$objWriter->save(str_replace('.php', '.xls', __FILE__));

3.读エクセル

?

1

2

3

4

//クラスを含める

require_once('Classes/PHPExcel/Reader/Excel2007.php');

$objReader = 新しい PHPExcel_Reader_Excel2007;

$objPHPExcel = $objReader->load("05featuredemo.xlsx");

4.读写csv

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

require_once("05featuredemo.inc.php");

require_once('Classes/PHPExcel/Writer/CSV.php');

require_once('Classes/PHPExcel/Reader/CSV.php');

require_once('Classes/PHPExcel/Writer/Excel2007.php');

//CSV形式に書き込む 写

$objWriter = 新しい PHPExcel_Writer_CSV($objPHPExcel);

$objWriter->setDelimiter(';');

$objWriter->setEnclosure('');

$objWriter->setLineEnding("rn");

$objWriter->setSheetIndex(0);

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

//CSV形式から読み込み读

$objReader = 新しい PHPExcel_Reader_CSV();

$objReader->setDelimiter(';');

$objReader->setEnclosure('');

$objReader->setLineEnding("rn");

$objReader->setSheetIndex(0);

$objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__));

//Excel2007形式に書き込みます

$objWriter2007 = 新しい PHPExcel_Writer_Excel2007($objPHPExcelFromCSV);

$objWriter2007->save(str_replace('.php', '.xlsx', __FILE__));

5.写html

?

1

2

3

4

5

6

require_once("05featuredemo.inc.php");

require_once('Classes/PHPExcel/Writer/HTML.php');

//HTML形式に書き込む

$objWriter = 新しい PHPExcel_Writer_HTML($objPHPExcel);

$objWriter->setSheetIndex(0);

$objWriter->save(str_replace('.php', '.htm', __FILE__));

6.写pdf

?

1

2

3

4

5

6

7

8

require_once("05featuredemo.inc.php");

require_once('Classes/PHPExcel/IOFactory.php');

//PDF 形式に書き込む

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

$objWriter->setSheetIndex(0);

$objWriter->save(str_replace('.php', '.pdf', __FILE__));

//エコー メモリのピーク使用量

echo date('H:i:s')." ピークメモリ使用量: ".(memory_get_peak_usage(true) / 1024 / 1024)." MBrn";


ここで説明されている大家向けの php プログラムの設計が役立つことを望みます。

http://www.bkjia.com/PHPjc/974524.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/974524.html技術記事 UsePHPExceloperExcel用法实例分析この篇文章主介绍了使用PHPExcel操作Excel用法、例分析了使用PHPExcel进行读写及生成等常用技巧、非常に有实...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP の "ピット"、PHP "ピット"_PHP チュートリアル次の記事:PHP の "ピット"、PHP "ピット"_PHP チュートリアル

関連記事

続きを見る