ホームページ > 毎日のプログラミング > PHPの知識 > ThinkPHP の PHPExcel は複数の画像データをエクスポートします

ThinkPHP の PHPExcel は複数の画像データをエクスポートします

眼眸间的深情
リリース: 2021-12-17 11:56:25
オリジナル
650 人が閲覧しました

データベース Excel インスタンスのデータをエクスポートするプロジェクトを最近実行したことがありますが、そのようなプロジェクトに遭遇したことがなかったので、ここに少しのインスピレーションを与えたいと思います。困っている友達のために! : バックエンド コントローラー メソッド: 制御

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

        /*导入phpExcel核心类 */

        require_once APP_PATH.'PHPExcel/PHPExcel.php';

        require_once APP_PATH.'PHPExcel/PHPExcel/Writer/Excel5.php';     // 用于其他低版本xls

        require_once APP_PATH.'PHPExcel/PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式

  

        //实例化PHPExcel类

        $objPHPExcel = new PHPExcel();

  

        $objPHPExcel->createSheet(0);

        $objPHPExcel->setActiveSheetIndex(0);

        $currentSheet = $objPHPExcel->getActiveSheet();

  

//      $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(300);#设置单元格行高(此方法经过个人测试,发现会出现excel变形)

  

        // 设置内容居中

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('I')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('J')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('K')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('L')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('M')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('N')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('O')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->setActiveSheetIndex(0)->getStyle('P')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

         

        // 设置excel宽度

        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);

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

        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);

        $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20);

  

        // 设置头部单元格注释信息

        $currentSheet->setCellValue('A1', "数据1");

        $currentSheet->setCellValue('B1', "数据2");

        $currentSheet->setCellValue('C1', "数据3");

        $currentSheet->setCellValue('D1', "数据4");

        $currentSheet->setCellValue('E1', "数据5");

        $currentSheet->setCellValue('F1', "数据6");

        $currentSheet->setCellValue('G1', "数据7");

        $currentSheet->setCellValue('H1', "数据8");

        $currentSheet->setCellValue('I1', "数据9");

        $currentSheet->setCellValue('J1', "数据10");

        $currentSheet->setCellValue('K1', "数据11");

        $currentSheet->setCellValue('L1', "数据12");

        $currentSheet->setCellValue('M1', "照片数据1");

        $currentSheet->setCellValue('N1', "照片数据2");

        $currentSheet->setCellValue('O1', "照片数据3");

        $currentSheet->setCellValue('P1', "照片数据4");

  

        $idx = 2;

  

        //查询出数据库内的数据信息

        //查询出所需信息

        $searchInfo = M('数据表')->select();

  

        //组装查询条件

        $year_time_result = 自定义设置的查询条件;

  

        $i = 0;

        foreach ($searchInfo as &$y){

  

            $i++;

  

            //设置数据所在单元格

            $currentSheet->setCellValue('A' . $idx, 数据1);

            $currentSheet->setCellValue('B' . $idx, 数据2);

            $currentSheet->setCellValue('C' . $idx, 数据3);

            $currentSheet->setCellValue('D' . $idx, 数据4);

            $currentSheet->setCellValue('E' . $idx, 数据5);

            $currentSheet->setCellValue('F' . $idx, 数据6);

            $currentSheet->setCellValue('G' . $idx, 数据7);

            $currentSheet->setCellValue('H' . $idx, 数据8);

            $currentSheet->setCellValue('I' . $idx, 数据9);

            $currentSheet->setCellValue('J' . $idx, 数据10);

            $currentSheet->setCellValue('K' . $idx, 数据11);

            $currentSheet->setCellValue('L' . $idx, 数据12);

  

            //设置单元格高度,这个是重点哦

            $currentSheet->getRowDimension($idx) -> setRowHeight(100);

  

            //图片处理类,这个才是图片导出的关键哦

            $objDrawing = new PHPExcel_Worksheet_Drawing();

  

            //开始设置图片

  

            //照片数据1

            if(!empty(照片数据1)){

                $objDrawing->setPath(照片数据1);

                // 设置图片宽度高度

                $objDrawing->setHeight(100);//照片高度

                $objDrawing->setWidth(100); //照片宽度

                /*设置图片要插入的单元格*/

                $objDrawing->setCoordinates('M'.$idx);

                // 图片偏移距离

                $objDrawing->setOffsetX(0);

                $objDrawing->setOffsetY(0);

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

            }

  

            //图片处理类,这个才是图片导出的关键哦

            $objDrawing1 = new PHPExcel_Worksheet_Drawing();

  

            //照片数据2

            if(!empty(照片数据2)){

                $objDrawing1->setPath(照片数据2);

                // 设置图片宽度高度

                $objDrawing1->setHeight(100);//照片高度

                $objDrawing1->setWidth(100); //照片宽度

                /*设置图片要插入的单元格*/

                $objDrawing1->setCoordinates('N'.$idx);

                // 图片偏移距离

                $objDrawing1->setOffsetX(0);

                $objDrawing1->setOffsetY(0);

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

            }

  

            //图片处理类,这个才是图片导出的关键哦

            $objDrawing2 = new PHPExcel_Worksheet_Drawing();

  

            //照片数据3

            if(!empty(照片数据3)){

                $objDrawing2->setPath(照片数据3);

                // 设置图片宽度高度

                $objDrawing2->setHeight(100);//照片高度

                $objDrawing2->setWidth(100); //照片宽度

                /*设置图片要插入的单元格*/

                $objDrawing2->setCoordinates('O'.$idx);

                // 图片偏移距离

                $objDrawing2->setOffsetX(0);

                $objDrawing2->setOffsetY(0);

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

            }

  

            //图片处理类,这个才是图片导出的关键哦

            $objDrawing3 = new PHPExcel_Worksheet_Drawing();

  

            //照片数据4

            if(!empty(照片数据4)){

                $objDrawing3->setPath(照片数据4);

                // 设置图片宽度高度

                $objDrawing3->setHeight(100);//照片高度

                $objDrawing3->setWidth(100); //照片宽度

                /*设置图片要插入的单元格*/

                $objDrawing3->setCoordinates('P'.$idx);

                // 图片偏移距离

                $objDrawing3->setOffsetX(0);

                $objDrawing3->setOffsetY(0);

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

            }

  

            $idx++;

  

        }

  

        $write = new PHPExcel_Writer_Excel5($objPHPExcel);

        header("Pragma: public");

        header("Expires: 0");

        header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

        header("Content-Type:application/force-download");

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

        header("Content-Type:application/octet-stream");

        header("Content-Type:application/download");;

        header('Content-Disposition:attachment;filename="导出excel的文件名(可自定义)"');

        header("Content-Transfer-Encoding:binary");

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

ログイン後にコピー

コードが共有されていることに注意してください。今回は、それが私のプロジェクトの成功コードであることを確認する必要があります。 Phpexcel のコア カテゴリです。このクラス ライブラリ ファイルが重要です。無料ダウンロード アドレス:

ThinkPHP は、データを Excel ファイルにエクスポートするための PHPExcel クラス ライブラリ ファイルを実装しています。そうでないと、変数の競合と画像の上書きの問題が発生します。最後の問題は、データベース データを読み取るときに、データベースに画像データが存在しない場合、データが空であるかどうかを判断する必要があることです。そうでないと、プログラム エラーが発生します。動作中に例外が発生しますが、これらに注意すると、関数は実行され、プログラムが非常に適切に表示されます。

以上がThinkPHP の PHPExcel は複数の画像データをエクスポートしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
1
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート