php如何向EXCEL插入数据并计算结果再得到返回结果? 。干吗不直接 用php计算呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 excel文件倒好办,php倒是能读,能写恩 问题是excel文件已经用了很多函数算法,已经集成了一个计算器了啊,只要填入选项就能计算,如果用PHP来计算的话,不知道里面的计算公式,还有就是表单太复杂。想直接往EXCEL里面塞数据再读结果就很简单了,不知怎么实现,大家帮忙想想办法~~~ MS Excel在使用PHP的COM函数#打开workbook和它的sheet,#本例使用一个电子表格是Excel安装时自带的SOLVSAMP.XLS$workbook = "C:Program FilesMicrosoft officeOfficeSamplesSOLVSAMP.XLS";$sheet = "Quick Tour";#实例化一个组件的对象$ex = new COM("Excel.sheet") or Die ("Did not connect");#取程序名称和版本print "Application name:{$ex->Application->value}" ;print "Loaded version: {$ex->Application->version}";#打开工作本使我们可使用它$wkb = $ex->application->Workbooks->Open($workbook) or Die ("Did not open");#预保存原来的工作本,创建一个工作本的复本$ex->Application->ActiveWorkbook->SaveAs("Ourtest");#$ex->Application->Visible = 1; #本句去注释让Excel可见# 读写一个单元格在一个新的工作表中# 我们可以读到这个单元格 E11 (Advertising in the 4th. Quarter)$sheets = $wkb->Worksheets($sheet); #Select the sheet$sheets->activate; #Activate it$cell = $sheets->Cells(11,5) ; #Select the cell (Row Column number)$cell->activate; #Activate the cellprint "Old Value = {$cell->value}"; #Print the value of the cell:10000$cell->value = 15000; #Change it to 15000print "New value = {$cell->value}";#Print the new value=15000#最后,用新值重新计算这个单元格$sheets->Calculate;#必须的如果要计算,手动则是可选的#可看到效果总价值(E13单元格)$cell = $sheets->Cells(13,5) ; #Select the cell (Row Column number)$number = Number_format($cell->value);print "New Total cost =$$number - was ,732 before.";#根据计算公式,广告影响了公司的开销,这里将显示 ,809#使用Excel内建的函数# PMT(percent/12 months,Number of payments,Loan amount)$pay = $ex->application->pmt(0.08/12,10,10000);$pay = sprintf("%.2f",$pay);print "Monthly payment for ,000 loan @8% interest /10 months: $ $pay";#Should print monthly payment = $ -1,037.03#可选,保存$ex->Application->ActiveWorkbook->SaveAs("Ourtest");#关闭,不提问$ex->application->ActiveWorkbook->Close("False");unset ($ex);?> 呵呵,谢谢 laruence 不过我的excel计价器很复杂,不知行不行,先试下。 Fatal error: Uncaught exception 'com_exception' with message 'Error [0x80020003] 找不到成员。 ' in E:\ROOT918\ROOT\insurance\test.php:7 Stack trace: #0 E:\ROOT918\ROOT\insurance\test.php(7): unknown() #1 {main} thrown in E:\ROOT918\ROOT\insurance\test.php on line 7报错了,打不开 你没有找对成员函数你试试,get_class_methods() 哎,难过exception 'com_exception' with message 'Error [0x80020003] 找不到成员。 ' in E:\ROOT918\ROOT\insurance\test.php:9 Stack trace: #0 E:\ROOT918\ROOT\insurance\test.php(9): unknown() #1 {main} 用phpexcel类吧!挺好用的具体可以在网上下到,前段时间刚用了 phpexcel类 我也试过了,没反应,根本不行。 调用excel类:<?require "excel_class.php";$workbook = "E:\ROOT918\ROOT\\tpic.xls"; Read_Excel_File($workbook,$return);for ($i=0;$i<count($return[Sheet1]);$i++){ for ($j=0;$j<count($return[Sheet1][$i]);$j++) { echo $return[Sheet1][$i][$j]."|"; } echo "<br>";}?>没反应,无输出 如果只是操作数据,可以的,最无误的办法是调用ADO操作excel,或用VBA 操作ADO 连接mysql如果要操作excel,在linux下没有办法!如果是.net或C#能调用相关的ActiveX之类的控件组件,(相当于本身就是一个excel),可以完全操作excel,PHP不行 php 如何用a链接进行多条件搜索 大家帮我解释一下这个非常感谢 请教intval()函数 为什么我这样的代码一些东西也没有输出? 不知道是谁告诉这个函数这样做的,哈哈!疑问.......... php手册中:正则表达式函数库中的模式语法,后半部分是英文的,有没有完整中文的?或有其它正则表达式完整、深入的资料? 如何显示指定的数据库字段? 求php压缩解压zip/rar文件的class,谢谢 请教大家关于用php+mysql分页的思路和具体的一些例子..非常感谢!! 本人刚刚为一家公司做完两个网站!希望大家多多指教(散分) 关于php解释的问题 数据库的视图并不能优化查询速度吧
恩
#本例使用一个电子表格是Excel安装时自带的SOLVSAMP.XLS$workbook = "C:Program FilesMicrosoft officeOfficeSamplesSOLVSAMP.XLS";
$sheet = "Quick Tour";#实例化一个组件的对象
$ex = new COM("Excel.sheet") or Die ("Did not connect");#取程序名称和版本
print "Application name:{$ex->Application->value}
" ;
print "Loaded version: {$ex->Application->version}
";#打开工作本使我们可使用它
$wkb = $ex->application->Workbooks->Open($workbook) or Die ("Did not open");#预保存原来的工作本,创建一个工作本的复本
$ex->Application->ActiveWorkbook->SaveAs("Ourtest");
#$ex->Application->Visible = 1; #本句去注释让Excel可见# 读写一个单元格在一个新的工作表中
# 我们可以读到这个单元格 E11 (Advertising in the 4th. Quarter)
$sheets = $wkb->Worksheets($sheet); #Select the sheet
$sheets->activate; #Activate it
$cell = $sheets->Cells(11,5) ; #Select the cell (Row Column number)
$cell->activate; #Activate the cell
print "Old Value = {$cell->value}
"; #Print the value of the cell:10000
$cell->value = 15000; #Change it to 15000
print "New value = {$cell->value}
";#Print the new value=15000#最后,用新值重新计算这个单元格
$sheets->Calculate;
#必须的如果要计算,手动则是可选的
#可看到效果总价值(E13单元格)
$cell = $sheets->Cells(13,5) ; #Select the cell (Row Column number)
$number = Number_format($cell->value);
print "New Total cost =$$number - was ,732 before.
";
#根据计算公式,广告影响了公司的开销,这里将显示 ,809#使用Excel内建的函数
# PMT(percent/12 months,Number of payments,Loan amount)
$pay = $ex->application->pmt(0.08/12,10,10000);
$pay = sprintf("%.2f",$pay);
print "Monthly payment for ,000 loan @8% interest /10 months: $ $pay
";#Should print monthly payment = $ -1,037.03#可选,保存
$ex->Application->ActiveWorkbook->SaveAs("Ourtest");
#关闭,不提问
$ex->application->ActiveWorkbook->Close("False");
unset ($ex);?>
exception 'com_exception' with message 'Error [0x80020003] 找不到成员。 ' in E:\ROOT918\ROOT\insurance\test.php:9 Stack trace: #0 E:\ROOT918\ROOT\insurance\test.php(9): unknown() #1 {main}
具体可以在网上下到,前段时间刚用了
require "excel_class.php";
$workbook = "E:\ROOT918\ROOT\\tpic.xls"; Read_Excel_File($workbook,$return);for ($i=0;$i<count($return[Sheet1]);$i++)
{
for ($j=0;$j<count($return[Sheet1][$i]);$j++)
{
echo $return[Sheet1][$i][$j]."|";
}
echo "<br>";
}
?>没反应,无输出
如果是.net或C#
能调用相关的ActiveX之类的控件组件,(相当于本身就是一个excel),可以完全操作excel,PHP不行