Tag: PHP的

一个.xlsx文件能够简化多远?

我目前正在一个PHP项目,并希望提供(非常基本)数据库表的Excel导出(只在单元格中的string和数字,没有格式等)。 我已经阅读了各种Excel文件格式。 我想避免包括一个图书馆来做到这一点。 我已经考虑使用传统的Microsoft Office XML格式 ,它似乎是最简单的解决scheme。 但是,当我给文件一个.xls扩展名而不是.xml时,Excel会发出警告。 我不想要生成.xml文件,因为我不能保证我的项目的用户不知道只是双击文件,而感到困惑。 我会留下这个最后的select。 理想情况下,我想生成一个Office Open XML (.xlsx,也就是Excel工作簿)文件,当前版本的Excel打开时不会抱怨。 所以我看了一下这个格式,发现它是一个zip的.xml文件的文件夹。 我想我只是把整个目录放在服务器上,写/replacexl/worksheets/sheet1.xml ,再次压缩并输出到浏览器。 可悲的是,工作表不包含实际的string和数字,而是引用来自sharedStrings.xml所有值。 我发现这个优秀的答案https://stackoverflow.com/a/18820405/3625228但理想情况下,我想摆脱任何文件,我可以简化.xlsx 。 我查看了存储依赖关系的[Content_Types].xml : <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/> <Default Extension="xml" ContentType="application/xml"/> <Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/> <Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/> <Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/> <Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/> <Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/> <Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/> <Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/> […]

PHP MySQL的Excel到XLS?

这是我的示例代码: $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->SetCellValue('A2', '1.0'); $objPHPExcel->getActiveSheet()->SetCellValue('B2', '0.0'); $objPHPExcel->getActiveSheet()->SetCellValue('C2', '1.2'); $objPHPExcel->getActiveSheet()->SetCellValue('D2', '100'); 我得到的Excel表格是舍入A2->1和B2->0 ,我需要输出在Excel表格是A2->1.0和B2->0.0 。 我需要float值以.zero( .0 )打印。 请帮我…

标准化CSV文件types

我正在使用csvparsing器类(http://code.google.com/p/php-csv-parser/)parsing和提取csv文件中的数据。 我遇到的问题是,它只适用于某些csv文件types。 (似乎有一个csvtypes的Mac,对于Ms-Dos和Windows。) 代码的作品,如果我使用csv文件保存在Mac(在Excel中)使用CSV – Windows选项。 但是,如果我将一个文件保存在Windows机器上,就像csv一样,那是行不通的。 (你可能会认为这与在Mac上保存csv-windows的格式是一样的。)如果我将它保存为csv-MSDOS文件,它可以在Windows机器上运行。 这似乎有点荒谬。 有没有办法来标准化这三种文件types,以便我的代码可以读取上传的任何types的csv? 我在想这将是这样的事情: $standardizedCSV = preg_replace_all('/\r[^\n]/', '\r\n', $csvContent); 我知道这与每个文件types如何处理行尾是有关系的,但是我有点努力弄清楚这些差异。 如果有人有任何build议,请让我知道。 谢谢。 更新:这是我使用的csvparsing器的相关代码,它逐行提取数据: $c = 0; $d = $this->settings['delimiter']; $e = $this->settings['escape']; $l = $this->settings['length']; $res = fopen($this->_filename, 'r'); while ($keys = fgetcsv($res, $l, $d, $e)) { if ($c == 0) { $this->headers = $keys; } else { […]

将mysql数据导出到CSV后发出号码

当我从数据库中获取数据并将其导出为csv文件时,我有以下问题: 数字dosnt显示的前导零 大数字显示这样 – > 1E+12 如何强制MS Excel通过PHP显示我的所有数据为string

如何正确地做一个WordPress插件返回一个可下载的Excel文件

我正在尝试为我的wordpress插件做一些报告。 这个报告必须以excel的forms下载。 基本上我所做的是创build一个button,当按下button时,我将查询数据库,并从结果中获得一个excel。 现在我需要修改头文件以excel文件的forms返回结果。 这是我做到的: header('Content-Disposition: attachment; filename='.$filename.'.xls'); header('Content-type: application/force-download'); header('Content-Transfer-Encoding: binary'); header('Pragma: public'); print "\xEF\xBB\xBF"; // UTF-8 BOM 问题是它返回以下错误: Warning: Cannot modify header information – headers already sent by (output started at …..\wp-admin\menu-header.php:137) 我可能需要ob_start(),但不是ob_start()必须放在第一个标题(这是从WordPress的核心文件)之前。 如果可能,我不想修改核心文件。 或者也许WordPress的'自己的钩'send_headers'? 但我不能得到它的工作,它仍然产生相同的错误。 那么我需要解决这个问题呢? 是否有另一种方式来刷新wordpress插件的excel文件? 任何帮助感激!

Spreadsheet_excel_readerdate格式

我使用spreadsheet_excel_reader读取PHP上的xls文件,并将数据插入到数据库。 我使用下面的代码: $filename = 'test.xls'; $reader=new Spreadsheet_Excel_Reader(); $reader->setUTFEncoder('iconv'); $reader->setOutputEncoding('CP1251'); $reader->read($filename); for($r=1; $r<=$reader->sheets[0]['numRows']; $r++) { for($c=1; $c<=$reader->sheets[0]['numCols']; $c++) { if (isset($reader->sheets[0]['cells'][$r][$c])) { //I'm using this code to get the value echo $reader->sheets[0]['cells'][$r][$c]; } } } 我的问题是,当我尝试读取date值,而不是显示“01/11/2014”,它显示“41944”。 任何人都可以帮助我?

导出为ex​​cel文件一个特定的行logging

在laravel 5.1使用maatweb / Excel包我需要导出特定的行logging到当前页面id正在查看的excel文件 在我的VlistController public function export() { Excel::create('Company List', function($excel) { $excel->sheet('companies', function($sheet) { $data = Vlist::all(); $data = json_decode(json_encode($data),true); $companies = []; foreach ($data as $key => $value) { $company['vname']= $value['vname']; $company['vaddress']= $value['vaddress']; $companies[] = $company; } $sheet->fromArray($companies); }); })->download('xlsx'); } 在我的路线文件 Route::get('/vlist/{vlist}/export' , 'VlistController@export'); 在我的秀场看来 <li><a href="{{ action('VlistController@export', [$vlist->id]) }}"><i class='fa […]

如何使用PHPExcel第一行的键转换为数组?

对不起,找不到我需要的东西。 我有xls / xlsx。 然后我得到这样的smth: array 0 => array 0 => string 'NameFirstColumn' 1 => string 'NameSecondColumn' 1 => array 0 => string 'qqq' 1 => float 30 2 => array 0 => string 'www' 1 => float 20 第一行是一个名称为值的标题。 如何使PHPExcel转换为数组看起来像这样: array 0 => array NameFirstColumn => string 'qqq' NameSecondColumn => float 30 1 => […]

用于将date时间转换为Excel的PHP函数Number DATEVALUE转换

我只是想要一个PHP函数将date转换为Excel数字格式。 例如: 2013-11-01至41579 这是在Excel中执行的方法

在PHP中以编程方式创buildExcel图表

你有什么想法如何在PHP中以编程方式创build图表? 我知道你可以调用Excel COM对象,但服务器在Linux机器上运行… 我已经使用了优秀的PHPExcel库,但他们不提供创build图表的选项。 谢谢 !