Tag: PHP的

使用PHP“pack”函数将数据下载到Excel时出现问题

我有一个PHP应用程序,将MySQL表数据下载到客户机上的电子表格。 我在networking上的许多地方发现了一些代码,可以在运行Redhat的机器上正常运行Open Office Scalc。 我遇到的问题是当我试图下载到Windows PC上的MS Excel而不是Open Office电子表格。 这个问题似乎与插入到单元格中的string的长度有关。 如果它太长,Excel认为该文件已损坏,不会加载它。 “太长”似乎是大约255个字符,即使MS Excel规格说32,000是最大长度。 为了进一步调查问题,我尝试下载与制表符分隔值文件相同的数据,并让Excel将其转换为电子表格。 使用这种方法,将很长的string加载到电子表格单元中是没有问题的。 因此,实际上可以将长度超过255个字符的string插入到Excel单元格中,但不能与我正在使用的代码一起使用,即使该代码可以与Open Office一起使用。 使用tsv文件不能解决我们的问题,因为长string有我们想要保留的回车符,并且当tsv文件被加载到电子表格中时回车被解释为行分隔符。 将string写入电子表格单元的PHP函数是: function xlsWriteLabel($Row, $Col, $Value ) { $L = strlen($Value); echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L); echo $Value; return; } 除上述function之外,用于传输到电子表格的其他必要代码可在以下位置find: http://www.appservnetwork.com/modules.php?name=News&file=article&sid=8 在上面的代码中,我没有发现任何传递给“pack”函数的参数的含义,我想知道是否在上面的函数中改变参数可以解决这个问题。 所以,如果任何人有解决这个问题,我会有兴趣听到这个问题。

避免重复导入到表中

有没有一种方法,我可以阻止一行数据input到数据库,而我从csv文件导入,以避免重复数据库.. 注意:虽然不允许input到数据库中的条目。 这是我正在处理的导入脚本…. <?php session_start(); ?> <?php require('includes/dbconnect.php'); ?> <?php require 'includes/header.inc.php'; ?> <?php if(isset($_POST['SUBMIT'])) { $fname = $_FILES['csv_file']['name'];//Acquire the name of the file $chk_ext = explode(".",$fname); $filename = $_FILES['csv_file']['tmp_name']; $handle = fopen($filename, "r");//Open the file for readability while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $sql = "INSERT into biodata (student_number, fname, lname, […]

将MySQL数据导出到Excelmatrix中

我有一个名为“关系”的MySQL表,如下所示: from to count ————- AB 456 AC 233 AD 463 BA 766 BC 215 BD 142 (实际上,“from”和“to”包含人名,表中包含150行)。 我现在需要将这个表格导出为(150×150)matrixforms的excel文件(不是CSV),如下所示: | ABCD –+—————— A | 0 456 233 463 B | 766 0 215 142 我需要从PHP内部做到这一点,但不知道如何去做这件事。 我是否首先创build一个空的Excel文件,命名所有的行和列? (所以这样:) | ABCD –+—————— A | B | 如果我这样做,那么我怎样才能连接到正确的细胞插入正确的计数? 或者我从PHP内部一起编写Excel文件? 而且,在现实中,表格不是结构化的,所以它看起来像这样: from to ——- AC FK FL BZ MP […]

我怎样才能自动化EXCEL表,Mysql和XML交互

我会给一个有很多logging(超过1000条logging)的Excel工作表。 我必须把这个excel表单的几个字段上传到Mysql中。 对于每个logging,将使用Mysql中的自动增量字段来分配唯一的ID。 现在,我必须为Excel工作表创build一个单独的XML文件以及在Mysql表中分配的唯一标识。 有没有一种方法可以使stream程自动化,或者最简单的方法是做什么?

PHP:读取大量的Excel文件导致致命的错误

我面临一个问题。 我需要读取大约10MB的.xls文件。 我写了一个PHP代码,当我读取小的.xls文件时工作正常。 但是当我尝试读取大文件,然后浏览器显示“致命错误:允许内存大小134217728字节用尽(试图分配1032字节)在C:\ wamp \ www \ student \ ExcelRes \ PHPExcel \ Cell.php行1126 “ 这是我的代码。 <?php ini_set('memory_limit', '128M'); set_include_path(get_include_path() . PATH_SEPARATOR . 'ExcelRes/'); include 'PHPExcel/IOFactory.php'; $inputFileName = 'ru_unit_H_all.xls'; $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); echo $sheetData['20007'][ 'K']; //row colomn ?>

PHP下载图像和DOCX以外的所有文件已损坏

我已经在一个我一直在做的项目中遇到了严重的问题。 用户将file upload到课程。 上传脚本获取文件名,用下划线replace空格,删除文件扩展名,添加一个4位数字,然后重新添加扩展名。 但是,文件完全上传到服务器(当直接从“上传”文件夹打开,他们没事)。 当下载到用户的计算机时,除DOCX文件和图像外,这些文件全部损坏。 下载的文件打开时,PDF,Excel(xlsx)和powerpoint(pptx)会给出错误消息: “文件已损坏,无法打开” 。 我必须下载的代码是: <?php class download extends Controller { public function resource ($filename) { $filepath = realpath('./uploads/resources/courses/' . $filename); header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Pragma: no-cache'); readfile($filepath); } } 这是一个MVC,所以这就是为什么它在一个类,$文件名是从文件名的$ _GETvariables检索。 任何帮助将非常感激!

在XML中从XML值创build一个XML?

我从一个string创build一个XML(这个string是另一个XML的值)。 我尝试了simplexml_load_string来创build。 我的Scenerio: 我的用户界面是在PHP中,我通过PHPExcel发送Excel工作表数据到我的项目的服务部分。 它返回: <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <root> <searcheddata> {Account0={AccountName=1, AddressLine2=0.0, Country=0.0, CellPhone=0.0, City=0.0, WorkPhone=0.0, Other=0.0, HomePhone=0.0, Email=0.0, AddressLine1=0.0, State=0.0, Zip=0.0, AlternateEmail=0.0}, City1={City=1, AddressLine2=0.0, Country=0.0, CellPhone=0.0, WorkPhone=0.0, Other=0.0, HomePhone=0.0, Email=0.0, AddressLine1=0.0, State=0.0, Zip=0.0, AlternateEmail=0.0}, State2={State=1, AddressLine2=0.0, Country=0.0, CellPhone=0.0, City=0.0, WorkPhone=0.0, Other=0.0, HomePhone=0.0, Email=0.0, AddressLine1=0.0, Zip=0.0, AlternateEmail=0.0}, Country3={Country=1, AddressLine2=0.0, CellPhone=0.0, City=0.0, WorkPhone=0.0, Other=0.0, HomePhone=0.0, […]

无法在Excel中手动发送Lotus Notes电子邮件

我试图使用macros发送Lotus Notes电子邮件给客户,我可以自动发送,但如果有什么我想发送之前添加它,所以我想把它设置为手动模式,所以我可以先查看电子邮件,发送前可能会做一些修改,所以我的问题是我该如何修改? 我有一些方法,但他们不工作。 然后我会用自动发送function发布我的整个代码: Sub Send_Unformatted_Rangedata(i As Integer) Dim noSession As Object, noDatabase As Object, noDocument As Object Dim vaRecipient As Variant Dim rnBody As Range Dim Data As DataObject Dim rngGen As Range Dim rngApp As Range Dim rngspc As Range Dim stSubject As String stSubject = "E-Mail For Approval for " + (Sheets("Summary").Cells(i, […]

Laravel擅长传递一个观点

我试图导出数据到Excel,我似乎无法使其工作。 我正在使用: http : //www.maatwebsite.nl/laravel-excel/docs 我尽可能地跟踪文档。 所以我有这个观点,我想在Excel中获得。 文件告诉我: 为单张纸张加载视图 $sheet->loadView('folder.view'); 所以我这样做,当然(我当然)我得到一个错误说,在视图中的variables没有被拒绝,因为我没有把variables传递到视图。 所以我再次阅读文档,它说: 将variables传递给视图 或者,您可以使用与Laravel视图相同的with()方法。 用一个基本with()例子。 所以现在我有我的控制器function: public function something(){ $something2=''; $something=''; Excel::create('Laravel Excel', function($excel) { $excel->sheet('Excel sheet', function($sheet) { $sheet->loadView('something')->with('something',$something) ->with('something2',$something2); $sheet->setOrientation('landscape'); }); })->export('xls'); } 现在我在控制器中得到一个错误: 未定义的variables$的东西 所以我不知道会发生什么事。 我保持积极,认为这将是一件容易的事情,实际上没有被宣布的东西,所以我删除了从Excel导出。 然后它给了我错误: 未定义的variables$ something2 在此之后,我知道还有其他的错误。 由于两者都不是根据excel的创build来“定义”的。 所以我尝试了一些新的东西。 在Excel创build中声明两个variables。 虽然在声明variables和创buildexcel之间有更多的代码。 所以这是行不通的。 所以代码是这样的: $something2=''; $something=''; //more code if($check==true){ Excel::create('Laravel […]

PHP到Excel – 德语Umlaute

我怎样才能改变这个class级来支持德国人的幽默(Umlaute,äöüÄÖÜ)? 我试图使用utf8_encode($数组)没有成功。 还尝试将Content-Transfer-Encoding:binary更改为utf8 谢谢你指出我正确的方向。 更新:或者这个代码是什么会破坏Umlaute的原因? class NYOS_ExcelWriter_Simple { public function CreatFile($array) { $file = $this->xlsBOF(); //íà÷èíàåì ñîáèðàòü ôàéë $tr1 = 0; foreach($array as $k => $v ) { $nn1 = 0; foreach($v as $k1 => $v1 ) { $file .= $this->xlsWriteLabel( $tr1, $nn1, $v1 ); $nn1++; } $tr1++; } $file .= $this->xlsEOF(); //çàêàí÷èâàåì ñîáèðàòü return […]