本周文件交换选择

我们最好的用户反馈

删除默认Excel表格

肖恩他本周的选择是RemoveSheet123通过诺姆Greenboim

使用MATLAB和Excel

最近,我一直在为不是MATLAB用户的同事做数据分析。然而,他们中的大多数人都熟悉Excel。因此,我在MATLAB中完成了繁重的工作,例如从数据库中聚合数百万条记录,或者复杂的设置分析,并将结果导出到Excel,这样他们就可以在Excel中查看、操作或旋转它。

为了实现这一点,我的操作方式是将数据放入一个表格然后使用writetable导出到Excel。一般来说,writetable“做正确的事”。如果你有异构数据,它会找出如何编写它,变量名已经存在,所以它们被用作列标题,等等。我发现这对于大多数情况来说是一个简单的工作流程,因为我通常不需要额外的控制xlswrite报价。

关于这种方法,有两件事必须要注意。首先,如果您向一个命名工作表(我经常这样做)写入数据,则会在向Excel文件添加新工作表时收到警告。

writetable(表(兰德(5)),“SimpleExcelFile.xlsx”,“表”,“Rand5”
警告:添加指定的工作表。

幸运的是,这可以很容易地关闭。

警告(“关闭”,MATLAB: xlswrite: AddSheet);

我实际上关闭了这个警告startup.m文件,所以我从来不需要看到这条消息,除非当博客!

这种方法所发生的另一件事是,默认的Excel表没有使用,保持为空,并在单击它们以查看其中包含的内容时占用空间或时间。这就是Noam文件的用武之地:它简单地删除了这些默认表。

从雅虎下载一些数据!(需要数据提要工具箱)Y =雅虎;%获取ClosePrice = fetch(y,“山姆”,“关闭”,“04/01/15”,“04/30/15”);转换为具有描述性变量名的表和日期时间TClosePrice = table(datetime(ClosePrice(:,1),“ConvertFrom”,“datenum”), ClosePrice (:, 2));tcloseprice . properties . variables = {“日期”,“SamAdamsClosingPrice”};%写writetable (TClosePrice“StockData.xlsx”,“表”,“SamAdams”

之前:

注意:这只适用于Windows,因为它依赖于Excel API。

%移除床单RemoveSheet123 (“StockData.xlsx”);
表#1 -删除。

后:

感谢Noam为我节省了研究Excel API的精力。

我做了一个小改动,就是注释掉在delete之后阻塞(第59行),所以如果它失败了,它会默默地执行。这样做的原因是,我有一个不同的Excel模板,默认情况下只给我一个表格。我永远不会把这三个都删除,至少在这台机器上不会。此更改将处理抛出错误时不保存或退出文档的情况。我建议使用anonCleanup对象来阻止此状态成为可能。

评论

如何集成MATLAB和Excel?您有什么技巧、技巧或挑战想要分享给MathWorks吗?

试一试,让我们知道你的想法在这里或者留下评论诺姆。




MATLAB®R2015a发布

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。