PHPExcel 读写封装类_PHP教程
对于 excel 文件的的生成于数据读取,我们可以用到 PHPExcel 插件。地址:http://phpexcel.codeplex.com/releases/view/107442 ,选第一个下载。然后解压的文件目录如下:
初学者应该先去看示例,代码不是很难理解。方法名都是观其名,知其用。在看过些许例子的基础上,我才想到封装一下,用着方便。鉴于我自己也只是入门。所以写了个相对入门的封装。
<span 1</span> <form method="post" enctype="multipart/form-data" > <span 2</span> <span 3</span> 文件:<input type="file" name="files" /></li> <span 4</span> <input type="submit" value="提交" /> <span 5</span> </form> <span 6</span> <span 7</span> <?<span php </span><span 8</span> <span 9</span> <span //</span><span set_include_path(get_include_path() . PATH_SEPARATOR . 'Excel/Classes/');</span> <span 10</span> <span 11</span> <span require_once</span> 'Excel/Classes/PHPExcel.php'<span ; </span><span 12</span> <span 13</span> <span class</span> myExcel <span extends</span><span PHPExcel{ </span><span 14</span> <span 15</span> <span private</span> <span $file</span><span ; </span><span 16</span> <span private</span> <span $fileType</span><span ; </span><span 17</span> <span 18</span> <span private</span> <span $objProperty</span>; <span //</span><span 文档属性对象 </span> <span 19</span> <span private</span> <span $objReader</span><span ; </span><span 20</span> <span private</span> <span $objWriter</span><span ; </span><span 21</span> <span 22</span> <span public</span> <span function</span><span __construct(){ </span><span 23</span> parent::<span __construct(); </span><span 24</span> <span 25</span> <span } </span><span 26</span> <span 27</span> <span /*</span> <span 28</span> <span * 设置文档属性 </span><span 29</span> <span * $property = array('title'=>'标题', 'creator' => '作者'); </span><span 30</span> <span */</span> <span 31</span> <span public</span> <span function</span> setProperty(<span $property</span><span ){ </span><span 32</span> <span $this</span>->objProperty = <span $this</span>-><span getProperties(); </span><span 33</span> <span if</span>(!<span empty</span>(<span $property</span>['creator']))<span $this</span>->objProperty->setCreator(<span $property</span>['creator'<span ]); </span><span 34</span> <span if</span>(!<span empty</span>(<span $property</span>['title'])) <span $this</span>->objProperty->setTitle(<span $property</span>['title'<span ]); </span><span 35</span> <span if</span>(!<span empty</span>(<span $property</span>['subject']))<span $this</span>->objProperty->setSubject(<span $property</span>['subject'<span ]); </span><span 36</span> <span if</span>(!<span empty</span>(<span $property</span>['laster']))<span $this</span>->objProperty->setLastModifiedBy(<span $property</span>['laster'<span ]); </span><span 37</span> <span if</span>(!<span empty</span>(<span $property</span>['description']))<span $this</span>->objProperty->setDescription(<span $property</span>['description'<span ]); </span><span 38</span> <span if</span>(!<span empty</span>(<span $property</span>['keyword']))<span $this</span>->objProperty->setKeywords(<span $property</span>['keyword'<span ]); </span><span 39</span> <span if</span>(!<span empty</span>(<span $property</span>['category']))<span $this</span>->objProperty->setCategory(<span $property</span>['category'<span ]); </span><span 40</span> <span } </span><span 41</span> <span 42</span> <span /*</span> <span 43</span> <span * 添加数据 </span><span 44</span> <span * $data = array( 'a1'=>'a111', 'b1'=>'b222', 'c1'=>'c111',); </span><span 45</span> <span * </span><span */</span> <span 46</span> <span public</span> <span function</span> addData(<span $data</span>, <span $index</span> = <span null</span><span ){ </span><span 47</span> <span $objAdd</span> = (<span $index</span>)? <span $this</span>->setActiveSheetIndex(<span $index</span>) : <span $this</span>-><span getActiveSheet(); </span><span 48</span> <span foreach</span>(<span $data</span> <span as</span> <span $key</span> => <span $val</span><span ){ </span><span 49</span> <span if</span>(<span empty</span>(<span $key</span>) || <span empty</span>(<span $val</span>)) <span continue</span><span ; </span><span 50</span> <span $objAdd</span>->setCellValue(<span $key</span>, <span $val</span><span ); </span><span 51</span> <span } </span><span 52</span> <span } </span><span 53</span> <span 54</span> <span //</span><span 生成文件</span> <span 55</span> <span public</span> <span function</span> saveFile(<span $file</span>, <span $path</span> = <span null</span>, <span $type</span> = 'Excel5'<span ){ </span><span 56</span> <span $this</span>->objWriter = PHPExcel_IOFactory::createWriter(<span $this</span>, <span $type</span><span ); </span><span 57</span> <span 58</span> <span $filePath</span> = <span $path</span>.<span $file</span><span ; </span><span 59</span> <span $this</span>->objWriter->save(<span $filePath</span><span ); </span><span 60</span> <span } </span><span 61</span> <span 62</span> <span /*</span><span -------------------------------------- 读取文件 ---------------------------- </span><span */</span> <span 63</span> <span 64</span> <span //</span><span 设置读对象</span> <span 65</span> <span private</span> <span function</span> setReader(<span $file</span>, <span $type</span> = <span null</span><span ){ </span><span 66</span> <span $this</span>-><span file</span> = <span $file</span><span ; </span><span 67</span> <span if</span>(<span $type</span><span ){ </span><span 68</span> <span $this</span>-><span fileType</span> = <span $type</span><span ; </span><span 69</span> <span $this</span>->objReader = PHPExcel_IOFactory::createReader(<span $type</span>)->load(<span $file</span><span ); </span><span 70</span> }<span else</span><span { </span><span 71</span> <span $this</span>-><span fileType</span> = PHPExcel_IOFactory::identify(<span $file</span><span ); </span><span 72</span> <span $this</span>->objReader = PHPExcel_IOFactory::load(<span $file</span><span ); </span><span 73</span> <span } </span><span 74</span> <span } </span><span 75</span> <span 76</span> <span 77</span> <span //</span><span 加载文件</span> <span 78</span> <span public</span> <span function</span> loadFile(<span $file</span>, <span $type</span> = <span null</span><span ){ </span><span 79</span> <span $this</span>->setReader(<span $file</span>, <span $type</span><span ); </span><span 80</span> <span $this</span>->sheetData = <span $this</span>->objReader->getActiveSheet()->toArray(<span null</span>,<span true</span>,<span true</span>,<span true</span><span ); </span><span 81</span> <span } </span><span 82</span> <span 83</span> <span //</span><span 返回需要的数据</span> <span 84</span> <span public</span> <span function</span> dataFormat(<span $meed</span>, <span $start</span> = 1, <span $end</span> = <span null</span><span ){ </span><span 85</span> <span foreach</span>(<span $this</span>->sheetData <span as</span> <span $line</span> => <span $row</span><span ){ </span><span 86</span> <span if</span>(<span $start</span> && <span $line</span> < <span $start</span>) <span continue</span><span ; </span><span 87</span> <span if</span>(<span $end</span> && <span $line</span> > <span $end</span>) <span break</span><span ; </span><span 88</span> <span foreach</span>(<span $row</span> <span as</span> <span $key</span> => <span $val</span><span ){ </span><span 89</span> <span if</span>(<span array_key_exists</span>(<span $key</span>, <span $meed</span><span )){ </span><span 90</span> <span $data</span>[<span $line</span>][<span $meed</span>[<span $key</span>]] = <span $val</span><span ; </span><span 91</span> <span } </span><span 92</span> <span } </span><span 93</span> <span } </span><span 94</span> <span return</span> <span array_merge</span>(<span $data</span><span ); </span><span 95</span> <span } </span><span 96</span> <span 97</span> <span //</span><span 工作表信息</span> <span 98</span> <span public</span> <span function</span> sheetInfo(<span $file</span> = <span null</span><span ){ </span><span 99</span> (<span $file</span>)? <span null</span> : <span $file</span> = <span $this</span>-><span file</span><span ; </span><span 100</span> <span $info</span> = <span $this</span>->objReader->listWorksheetInfo(<span $file</span><span ); </span><span 101</span> <span return</span> <span $info</span><span ; </span><span 102</span> <span } </span><span 103</span> <span 104</span> <span } </span><span 105</span> <span 106</span> <span 107</span> <span if</span>(<span $_FILES</span><span ){ </span><span 108</span> <span $upDir</span> = './upImg/'<span ; </span><span 109</span> <span $path</span> = <span $upDir</span>.'aaa.xls'<span ; </span><span 110</span> <span if</span>(!<span is_dir</span>(<span $upDir</span>)) <span mkdir</span>(<span $upDir</span>, 0777, <span true</span>) or <span exit</span>('上传目录创建失败!'<span ); </span><span 111</span> <span $temp</span> = <span $_FILES</span>['files']['tmp_name'<span ]; </span><span 112</span> <span move_uploaded_file</span>(<span $temp</span>, <span $path</span>);<span //</span><span 移到指定目录</span> <span 113</span> <span 114</span> <span $property</span> = <span array</span><span ( </span><span 115</span> 'title'=>'the title', <span 116</span> 'creator' => '作者' <span 117</span> <span ); </span><span 118</span> <span $data</span> = <span array</span><span ( </span><span 119</span> 'A1'=>'a1111', <span 120</span> 'A2'=>'a222', <span 121</span> 'B1'=>'b111', <span 122</span> 'E1'=>'e111', <span 123</span> 'f2'=>'f22222' <span 124</span> <span ); </span><span 125</span> <span 126</span> <span $data2</span> = <span array</span><span ( </span><span 127</span> <span 128</span> 'g2'=>'f22222', <span 129</span> 'h1'=>'hhh', <span 130</span> 'j1'=>'jjjjj' <span 131</span> <span ); </span><span 132</span> <span 133</span> <span $test</span> = <span new</span><span myExcel(); </span><span 134</span> <span //</span><span $test->setProperty($property); </span><span 135</span> <span //$test->addData($data, 0); </span><span 136</span> <span //$test->addData($data2); </span><span 137</span> <span //$test->saveFile('aaa.xls');</span> <span 138</span> <span 139</span> <span $test</span>->loadFile('upImg/aaa.xls'<span ); </span><span 140</span> <span $meed</span> = <span array</span>('A'=>'name','E'=>'age','F'=>'address'<span ); </span><span 141</span> <span $data</span> = <span $test</span>->dataFormat(<span $meed</span>, <span null</span>, 5<span ); </span><span 142</span> <span var_dump</span>(<span $data</span><span ); </span><span 143</span> <span } </span><span 144</span> ?>
数据返回的配置,可以看下图:

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











인쇄해야 하는 파일을 열 때 인쇄 미리보기에서 어떤 이유로 인해 테이블 프레임 선이 사라진 것을 발견할 수 있습니다. 이러한 상황이 발생하면 인쇄에도 나타나는 경우 제때에 처리해야 합니다. file 이런 질문이 있으시면 에디터에 가입하여 다음 강좌를 배워보세요. Excel에서 표를 인쇄할 때 테두리 선이 사라지면 어떻게 해야 하나요? 1. 아래 그림과 같이 인쇄할 파일을 엽니다. 2. 아래 그림과 같이 필요한 콘텐츠 영역을 모두 선택합니다. 3. 아래 그림과 같이 마우스 오른쪽 버튼을 클릭하고 "셀 서식" 옵션을 선택합니다. 4. 아래 그림과 같이 창 상단의 "테두리" 옵션을 클릭하세요. 5. 아래 그림과 같이 왼쪽 선 스타일에서 가는 실선 패턴을 선택합니다. 6. '외부 테두리'를 선택하세요.

엑셀은 일상적인 사무에서 데이터를 처리하는 데 자주 사용되며, "필터" 기능을 사용해야 하는 경우가 많습니다. Excel에서 "필터링"을 수행하도록 선택하면 동일한 열에 대해 최대 2개의 조건만 필터링할 수 있습니다. 그러면 Excel에서 동시에 3개 이상의 키워드를 필터링하는 방법을 알고 계십니까? 다음으로 여러분에게 보여드리겠습니다. 첫 번째 방법은 필터에 조건을 점진적으로 추가하는 것입니다. 세 가지 적격 세부정보를 동시에 필터링하려면 먼저 그 중 하나를 단계별로 필터링해야 합니다. 처음에는 조건에 따라 "Wang"이라는 직원을 먼저 필터링할 수 있습니다. 그런 다음 [확인]을 클릭한 후 필터 결과에서 [현재 선택 항목을 필터에 추가]를 선택하세요. 단계는 다음과 같습니다. 마찬가지로 다시 별도로 필터링을 수행합니다.

0. 이 글은 어떤 내용을 담고 있나요? 우리는 다재다능하고 빠른 최첨단 생성 단안 깊이 추정 모델인 DepthFM을 제안합니다. DepthFM은 전통적인 깊이 추정 작업 외에도 깊이 인페인팅과 같은 다운스트림 작업에서 최첨단 기능을 보여줍니다. DepthFM은 효율적이며 몇 가지 추론 단계 내에서 깊이 맵을 합성할 수 있습니다. 이 작품을 함께 읽어보아요~ 1. 논문 정보 제목: DepthFM: FastMoncularDepthEstimationwithFlowMatching 저자: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

컴퓨터에서 폴더를 삭제하거나 압축을 풀 때 "오류 0x80004005: 지정되지 않은 오류"라는 프롬프트 대화 상자가 나타나는 경우가 있습니다. 이러한 상황이 발생하면 어떻게 해야 합니까? 실제로 오류 코드 0x80004005가 나타나는 데에는 여러 가지 이유가 있지만 대부분은 바이러스로 인해 발생합니다. 문제를 해결하기 위해 dll을 다시 등록할 수 있습니다. 아래에서는 편집기에서 0x80004005 오류 코드를 처리한 경험을 설명합니다. . 일부 사용자는 컴퓨터를 사용할 때 오류 코드 0X80004005가 표시됩니다. 0x80004005 오류는 주로 컴퓨터가 특정 동적 링크 라이브러리 파일을 올바르게 등록하지 않거나 컴퓨터와 인터넷 간의 HTTPS 연결을 허용하지 않는 방화벽으로 인해 발생합니다. 그렇다면 어떨까요?

Google이 추진하는 JAX의 성능은 최근 벤치마크 테스트에서 Pytorch와 TensorFlow를 능가하여 7개 지표에서 1위를 차지했습니다. 그리고 JAX 성능이 가장 좋은 TPU에서는 테스트가 이루어지지 않았습니다. 개발자들 사이에서는 여전히 Tensorflow보다 Pytorch가 더 인기가 있습니다. 그러나 앞으로는 더 큰 모델이 JAX 플랫폼을 기반으로 훈련되고 실행될 것입니다. 모델 최근 Keras 팀은 기본 PyTorch 구현을 사용하여 세 가지 백엔드(TensorFlow, JAX, PyTorch)와 TensorFlow를 사용하는 Keras2를 벤치마킹했습니다. 첫째, 그들은 주류 세트를 선택합니다.

지연이 발생하고 iPhone의 모바일 데이터 연결 속도가 느립니까? 일반적으로 휴대폰의 셀룰러 인터넷 강도는 지역, 셀룰러 네트워크 유형, 로밍 유형 등과 같은 여러 요소에 따라 달라집니다. 더 빠르고 안정적인 셀룰러 인터넷 연결을 얻기 위해 할 수 있는 일이 몇 가지 있습니다. 수정 1 – iPhone 강제 다시 시작 때로는 장치를 강제로 다시 시작하면 셀룰러 연결을 포함한 많은 항목이 재설정됩니다. 1단계 – 볼륨 높이기 키를 한 번 눌렀다가 놓습니다. 그런 다음 볼륨 작게 키를 눌렀다가 다시 놓습니다. 2단계 - 프로세스의 다음 부분은 오른쪽에 있는 버튼을 누르는 것입니다. iPhone이 다시 시작되도록 하세요. 셀룰러 데이터를 활성화하고 네트워크 속도를 확인하세요. 다시 확인하세요 수정 2 – 데이터 모드 변경 5G는 더 나은 네트워크 속도를 제공하지만 신호가 약할 때 더 잘 작동합니다

1. PPT를 열고 엑셀 아이콘을 삽입해야 하는 페이지로 페이지를 넘깁니다. 삽입 탭을 클릭합니다. 2. [개체]를 클릭하세요. 3. 다음과 같은 대화상자가 나타납니다. 4. [파일에서 생성]을 클릭한 후 [찾아보기]를 클릭하세요. 5. 삽입할 엑셀 표를 선택하세요. 6. 확인을 클릭하면 다음 페이지가 나타납니다. 7. [아이콘으로 표시]를 체크하세요. 8. 확인을 클릭합니다.

HTML로 Excel 데이터를 읽는 방법: 1. JavaScript 라이브러리를 사용하여 Excel 데이터를 읽습니다. 2. 서버측 프로그래밍 언어를 사용하여 Excel 데이터를 읽습니다.
