我需要将数据从php导出到Excel,并能够格式化excel电子表格中的各种项目.
到目前为止,我找到的最好的库是PHPExcel.但是,它看起来很重,而且有点慢.当然,它非常强大.
有没有更轻量级和更快的东西,这允许我导出到Excel并能够应用简单的格式(粗体,对齐,边框)?
在Mac OS/Cocoa中,我可以以透明的方式为最前面的应用程序合成键盘条目 - 字符串吗?
更确切地说,我不想发送特殊字符或控制序列.我唯一需要的是发送标准字符.
刚刚在这里学到,AppleScript可以像这样做:
tell application "TextEdit"
activate
tell application "System Events"
keystroke "f" using {command down}
end tell
end tell
Run Code Online (Sandbox Code Playgroud)
问:我如何使用ObjC/cocoa做到这一点?
更新2012-02-18 - 尼克斯提案得到加强
根据下面尼克的代码,这是最终的解决方案:
// First, get the PSN of the currently front app
ProcessSerialNumber psn;
GetFrontProcess( &psn );
// make some key events
CGEventRef keyup, keydown;
keydown = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, true);
keyup = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, false);
// forward them to the frontmost app
CGEventPostToPSN (&psn, keydown); …Run Code Online (Sandbox Code Playgroud) 假设PHP脚本使用A类的方法,然后重新生成A类的新源代码。
如果已经声明了类 A,PHP 是否提供了取消声明类 A的方法,以便我可以重新需要新创建的类 A 的源?
我所说的“已声明”的意思是,类的源代码已被解析,因此类名已定义并绑定到类定义。
更新2014-02-22
RunKit确实提供了runkit_constant_remove。如果不使用 RunKit,似乎没有未声明/取消定义类的方法。
我需要在应用程序中引用ABPerson记录.我使用提供的唯一ID
- (NSString *)uniqueId
Run Code Online (Sandbox Code Playgroud)
并将其附加到我的应用内联系记录中.
另外,我将ABPerson的 vCardRepresentation保存为后备.如果应用程序不再能够使用uniqueID找到ABRecord,则应用程序会要求用户使用保存的vCardRepresentation恢复地址簿记录.一切正常.
不幸的是,一位朋友告诉我,uniqueId不是不可变的:在同步期间,uniqueId可能会突然改变.
据他介绍,地方iOS版的文件中,苹果解释说,没有办法存在于一成不变的确定使用UNIQUEID ABPersons.在OS X的Cocoa文档中,我没有找到这样的提示.
在给定的Mac上,uniqueId可能会突然改变吗?如果这是真的,那么从外部应用程序中识别ABPerson记录的正确方法是什么?
如果uniqueID不是不可变的,我当然可以使用GUID分配一个自定义属性.不幸的是,自定义字段不同步.
当然,我更喜欢使用uniqueId.
嘿伙计们,这个问题不能太复杂.请提供一个解决方案,至少找出问题的根本原因.
我目前正在编写一个应用程序,它通过COM控制Excel:该应用程序创建一个基于COM的Excel实例,打开一些XLS文件并读取其内容.
情景一
在Windows 7上,我使用具有系统管理员权限的xmapp-control启动Apache和mySQL .一切都按预期工作.基于PHP的控制器脚本按预期与Excel交互.
情景二
如果我将Apache和mySQL作为"后台作业"启动,则会出现问题.方法如下:
Apache和mySQL按预期工作.具体来说,Apache提供来自客户端的HTTP请求,PHP可以与mySQL通信.
当我调用PHP控制器,它使用COM调用并与Excel交互时,我收到一个错误.
该错误消息来自Excel的 [不COM本身],并读取这样的:
有趣的是,第一次运行基于PHP的控制器脚本时,首先需要几秒钟来呈现错误消息.每次后续运行都会立即呈现错误消息.
Windows系统日志未显示单个问题报告条目.
注意,PHP程序和Apache实例没有改变 - 除了Apache的启动方式.
至少PHP控制器脚本完全能够读取文件系统,因为它通过某个目录的scandir()为XLS文件提供了pathes.
并发问题不能成为问题的原因.特定PHP控制器的单个实例与Excel交互.
题
有人可以提供详情,为什么会这样?或者提供隔离问题最终原因的方法(例如通过PowerShell 2脚本)?
UPDATE-1 :: 2011-11-29
正如提议的那样,我将Task Planner工作从SYSTEM切换到传统用户.作品.Apache和MySQL启动并处理请求.
不幸的是,关于Excel的情况并没有改变.不过,我看到了错误.
如前所述,EXCEL COM服务器启动.我可以通过COM实例更改各种设置(例如,禁止对话框)而不会出现问题.
调用此问题时会发生此问题:
$excelComObject->Workbooks->Open( 'PathToXLSFile' );
Run Code Online (Sandbox Code Playgroud)
UPDATE-2 :: 2011-11-30
使用READABLE权限将帐户USER,GUEST和EVERYONE添加到XLS文件的访问控制列表中.没变.
以这种方式修改了应用程序,PHP部分将XLS文件的副本创建为临时文件,并将原始文件的内容移动到此文件中.只是为了确保问题不是由奇数文件/路径名强制的.
但问题仍然存在.
UPDATE-2 :: 2011-12-05
我将以这种方式发送EXCEL COM-Server方法,Excel创建一个空白文件并将其保存到/ tmp.让我们看看,如果Excel甚至无法读取此文件.
搜索网络,但没有找到明确的解释.有几个人报告了问题,有些人声称需要UTF-8.因此:
当然,该网站使用此元标记:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Run Code Online (Sandbox Code Playgroud)
在某些操作系统上运行的某些浏览器无法显示正确的变音字符,请将这些字符命名为öäüÖÄÜÜ:
Mac OS X.
Windows XP
在PARTIAL的情况下,变音符号有时看起来很好,有时看起来像 等.
据我所知,如果jQuery重新加载'部分',变音符号会中断.
有些人可能会暗示哪个API会拦截像Little Snitch那样在Mac OS X上进出的网络流量?
基于可可的API是受欢迎的.
是否需要编写一个kext或者某种程度上授权的用户土地应用程序也可以完成这项工作?
我需要将文件从一个OS X卷复制到另一个OS X卷.虽然*.app严格来说不是文件而是文件夹,但用户希望它们是一个单元.因此,如果用户选择文件,则应用程序不应显示其文件夹的内容,而应将其作为一个单元进行复制.
因此,我问,是否存在使用纯Cocoa代码复制文件的推荐方法.
可选:哪个命令行工具提供帮助,Cocoa应用程序可以使用它.
通常,使用NavigationStack中的一个弹出当前页面:
Navigation.PopAsync( true );
Run Code Online (Sandbox Code Playgroud)
如何使用Navigation在当前页面之前重绘页面?
背景:当前页面改变了需要在一页但最后一页重新呈现的内容.