ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp3.2 で生成された画像を使用して phpexcel エクスポートを実装する

thinkphp3.2 で生成された画像を使用して phpexcel エクスポートを実装する

不言
リリース: 2023-03-30 12:40:01
オリジナル
2061 人が閲覧しました

この記事では主に、thinkphp3.2 で生成された画像を含む phpexcel エクスポートの例を紹介します。内容が非常に優れているので、参考として共有します。

最初に PHPEXCEL をダウンロードします。

Classes ディレクトリ (PHPExcel.php および PHPExcel フォルダー) のファイルを ThinkPHP\Library\Org\Util ディレクトリに置きます。

PHPExcel の名前を変更します。 : PHPExcel.class.php

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

// 导出exl

 

  public function look_down(){

 

    $id = I('get.id');

 

    $m = M ('offer_goods');

 

    $where['offer_id'] = $id;

 

    $data = $m->field('goods_id,goods_sn,goods_name,barcode,goods_type,price')->select();

 

      

 

    // 导出Exl

 

    import("Org.Util.PHPExcel");

 

    import("Org.Util.PHPExcel.Worksheet.Drawing");

 

    import("Org.Util.PHPExcel.Writer.Excel2007");

 

    $objPHPExcel = new \PHPExcel();

 

      

 

    $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);

 

    

 

    $objActSheet = $objPHPExcel->getActiveSheet();

 

      

 

    // 水平居中(位置很重要,建议在最初始位置)

 

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

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->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);

 

      

 

    $objActSheet->setCellValue('A1', '商品货号');

 

    $objActSheet->setCellValue('B1', '商品名称');

 

    $objActSheet->setCellValue('C1', '商品图');

 

    $objActSheet->setCellValue('D1', '商品条码');

 

    $objActSheet->setCellValue('E1', '商品属性');

 

    $objActSheet->setCellValue('F1', '报价(港币)');

 

    // 设置个表格宽度

 

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

 

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

 

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

 

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

 

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

 

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

 

      

 

    // 垂直居中

 

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

 

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

 

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

 

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

 

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

 

      

 

    foreach($data as $k=>$v){

 

      $k +=2;

 

      $objActSheet->setCellValue('A'.$k, $v['goods_sn']); 

 

      $objActSheet->setCellValue('B'.$k, $v['goods_name']); 

 

          

 

        

 

      $img = M('goods')->where('goods_id = '.$v['goods_id'])->field('goods_thumb')->find();

 

      // 图片生成

 

      $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();

 

      $objDrawing[$k]->setPath('./Upload/'.$img['goods_thumb']);

 

      // 设置宽度高度

 

      $objDrawing[$k]->setHeight(80);//照片高度

 

      $objDrawing[$k]->setWidth(80); //照片宽度

 

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

 

      $objDrawing[$k]->setCoordinates('C'.$k);

 

      // 图片偏移距离

 

      $objDrawing[$k]->setOffsetX(12);

 

      $objDrawing[$k]->setOffsetY(12);

 

      $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());

 

        

 

      // 表格内容

 

      $objActSheet->setCellValue('D'.$k, $v['barcode']); 

 

      $objActSheet->setCellValue('E'.$k, $v['goods_type']); 

 

      $objActSheet->setCellValue('F'.$k, $v['price']);

 

          

 

      // 表格高度

 

      $objActSheet->getRowDimension($k)->setRowHeight(80);

 

        

 

    }

 

      

 

    $fileName = '报价表';

 

    $date = date("Y-m-d",time());

 

    $fileName .= "_{$date}.xls";

 

    $fileName = iconv("utf-8", "gb2312", $fileName);

 

    //重命名表

 

    // $objPHPExcel->getActiveSheet()->setTitle('test');

 

    //设置活动单指数到第一个表,所以Excel打开这是第一个表

 

    $objPHPExcel->setActiveSheetIndex(0);

 

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

 

    header("Content-Disposition: attachment;filename=\"$fileName\"");

 

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

 

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

 

    $objWriter->save('php://output'); //文件通过浏览器下载

 

    // END 

 

  }

ログイン後にコピー

水平方向の中央揃え、垂直方向の中央揃え、高さなどの設定。位置に注意して最後に置くと以下のようになります。 headに置くと1行目が有効になります(上記のコードは1行目が有効になりますが、foreachに置くと次の行が有効になります)。

インポートの概要。 import("Org.Util.PHPExcel.Writer.Excel2007"); ファイルの場所: Org\Util\PHPExcel\Writer\Excel2007.class.php

画像アドレスはローカルである必要があります。 objDrawing[ objDrawing[k]->setPath('./Upload/'.$img['goods_thumb']); 画像の場所: インストール ディレクトリ/Upload/xxx

関連する推奨事項:

PHP Excel ファイルをアップロードしてデータを MySQL データにインポートします


以上がthinkphp3.2 で生成された画像を使用して phpexcel エクスポートを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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