将用户的个人 Excel 列过滤器存储在类似 cookie 的文件中?

将用户的个人 Excel 列过滤器存储在类似 cookie 的文件中?

我正在开发一个报告应用程序(多么令人兴奋!),它可以输出 HTML、PDF 和 Excel 报告。在 HTML 版本中,我让用户选择他们关心的列,并过滤掉其他列。这完全在浏览器中处理,因此为 xyz 报告生成和缓存的所有数据和 HTML 对于 Alice 和 Bob 来说都是相同的,即使他们在浏览器中显示不同的列。他们隐藏的列保存在 cookie 中,因此如果他们切换浏览器,他们必须重新应用这些设置。

我想对 Excel 文件执行相同的操作。有什么方法可以保存此列列表以隐藏在 Personal.xls 或其他任何地方,并在生成的 Excel 文件中包含一个宏来读取列列表并应用它?

(如果宏可以存储在 Personal.xls 中并在打开与某个正则表达式匹配的电子表格时自动运行,那就更好了,但也许这是不可能的,或者应该是一个单独的问题。)

在 Excel 中可以实现类似 cookie 的功能吗?

答案1

在 VBA 宏中,您可以使用文件系统对象来读取和写入文件。MSDN 中使用此对象的示例:

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("This is a test.")
a.Close

您可以使用 FSO 来确保文件存在、创建或打开它、写入它以及读取它。

您还可以将列存储在单独的工作簿中,该工作簿将在 VBA 中生成和读取,而无需 FSO 的代码开销,但对于您正在做的事情来说,FSO 似乎是更清晰的选择。

相关内容