很长一段时间以来,我一直在尝试让用户能够使用对话框“另存为”或“打开”创建的电子表格。
这是我尝试过的,我没有收到任何错误,只是屏幕上出现乱码:
//CREATE SPEADSHEET
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// We'll be outputting an excel file
header('Content-type: application/vnd.ms-excel');
// It will be called file.xls
header('Content-Disposition: attachment; filename="file.xls"');
// Write file to the browser
$objWriter->save('php://output');
如果您能帮助我解决这个问题,我将不胜感激。
最佳答案
我刚刚尝试了你的部分代码,它工作得很好,如果你得到的只是乱码,问题实际上可能出在你生成表格的部分,检查那部分看是否有任何错误,下面是我用来测试它的代码:
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once '../../PHPExcel/Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Lumina")
->setLastModifiedBy("Lumina")
->setTitle("Entry members")
->setSubject("Entry members")
->setDescription("List of members participting.")
->setKeywords("office PHPExcel php")
->setCategory("Entry members");
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', $row_titles['TITLE01'])
->setCellValue('B1', $row_titles['TITLE02'])
->setCellValue('C1', $row_titles['TITLE03'])
->setCellValue('D1', $row_titles['TITLE04'])
->setCellValue('E1', $row_titles['TITLE05'])
->setCellValue('F1', $row_titles['TITLE06'])
->setCellValue('G1', $row_titles['TITLE07'])
->setCellValue('H1', $row_titles['TITLE08'])
->setCellValue('I1', $row_titles['TITLE09'])
->setCellValue('J1', $row_titles['TITLE10'])
->setCellValue('K1', $row_titles['TITLE11'])
->setCellValue('L1', $row_titles['TITLE12'])
->setCellValue('M1', $row_titles['TITLE13'])
->setCellValue('N1', $row_titles['TITLE14'])
->setCellValue('O1', $row_titles['TITLE15'])
->setCellValue('P1', $row_titles['TITLE16'])
->setCellValue('Q1', $row_titles['TITLE17'])
->setCellValue('R1', $row_titles['TITLE18'])
->setCellValue('S1', $row_titles['TITLE19'])
->setCellValue('T1', $row_titles['TITLE20'])
->setCellValue('U1', $row_titles['TEAM_TX'])
->setCellValue('V1', $row_titles['T_SHIRT_SIZE'])
->setCellValue('W1', $row_titles['INPUT1_TX'])
->setCellValue('X1', $row_titles['INPUT2_TX'])
->setCellValue('Y1', $row_titles['INPUT3_TX'])
->setCellValue('Z1', $row_titles['INPUT4_TX']);
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Participants');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel5 file
//echo date('H:i:s') , " Write to Excel5 format" , EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.html', '.xls', __FILE__));
// We'll be outputting an excel file
header('Content-type: application/vnd.ms-excel');
// It will be called file.xls
header('Content-Disposition: attachment; filename="file.xls"');
// Write file to the browser
$objWriter->save('php://output');
希望这对我有帮助,因为我也是 PHP 的新手。
关于PHPExcel:下载电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244041/
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我正在尝试用Prawn生成PDF。在我的PDF模板中,我有带单元格的表格。在其中一个单元格中,我有一个电子邮件地址:cell_email=pdf.make_cell(:content=>booking.user_email,:border_width=>0)我想让电子邮件链接到“mailto”链接。我知道我可以这样链接:pdf.formatted_text([{:text=>booking.user_email,:link=>"mailto:#{booking.user_email}"}])但是将这两行组合起来(将格式化文本作为内容)不起作用:cell_email=pdf.make_c
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
我正在尝试将一个简单的CSV文件读入HTML表格以在浏览器中显示,但我遇到了麻烦。这就是我正在尝试的:Controller:defshow@csv=CSV.open("file.csv",:headers=>true)end查看:输出:NameStartDateEndDateQuantityPostalCode基本上我只获取标题,而不会读取和呈现CSV正文。 最佳答案 这最终成为最终解决方案:Controller:defshow#OpenaCSVfile,andthenreaditintoaCSV::Tableobjectforda
我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315
我将Cucumber与Ruby结合使用。通过Selenium-Webdriver在Chrome中运行测试时,我想将下载位置更改为测试文件夹而不是用户下载文件夹。我当前的chrome驱动程序是这样设置的:Capybara.default_driver=:seleniumCapybara.register_driver:seleniumdo|app|Capybara::Selenium::Driver.new(app,:browser=>:chrome,desired_capabilities:{'chromeOptions'=>{'args'=>%w{window-size=1920,1
我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?我现在有这段代码pdf.transactiondopdf.table@data,:font_size=>12,:border_style=>:grid,:horizontal_padding=>10,:vertical_padding=>3,:border_width=>2,:position=>:left,:row_colors=>["FFFFFF","DDDDDD"]pdf.
这会导致Ruby出现内存问题吗?我知道如果大小超过10KB,Open-URI会写入TempFile。但是HTTParty会在写入TempFile之前尝试将整个PDF保存到内存吗?src=Tempfile.new("file.pdf")src.binmodesrc.writeHTTParty.get("large_file.pdf").parsed_response 最佳答案 您可以使用Net::HTTP。参见thedocumentation(特别是标题为“流媒体响应机构”的部分)。这是文档中的示例:uri=URI('http://e
我想验证一个电子邮件地址是否是PayPal用户。是否有API调用来执行此操作?是否有执行此操作的ruby库?谢谢 最佳答案 GetVerifiedStatus来自PayPal'sAdaptiveAccounts平台会为您做这件事。PayPal没有任何codesamples或SDKs用于Ruby中的自适应帐户,但我确实找到了编写codeforGetVerifiedStatusinRuby的人.您需要更改该代码以检查他们拥有的帐户类型的唯一更改是更改if@xml['accountStatus']!=nilaccount_status