c# – 将数据导出到Excel通过Open XML启用宏
发布时间:2020-12-15 22:41:55 所属栏目:百科 来源:网络整理
导读:我有一张Excel工作表,我将其用作导出数据的模板文件. Excel工作表是XLSM文件,在VBA中写入的代码很少. 每次复制文件并使用时间戳重命名时,应将数据写入复制的xlsm文件,但不写入数据. 我正在使用Open XML库. 如果我使用xlsx模板文件,则同样有效. 是不是可以通
我有一张Excel工作表,我将其用作导出数据的模板文件.
Excel工作表是XLSM文件,在VBA中写入的代码很少. 每次复制文件并使用时间戳重命名时,应将数据写入复制的xlsm文件,但不写入数据. 我正在使用Open XML库. 如果我使用xlsx模板文件,则同样有效. 是不是可以通过Open XML在xlsm Excel Macro上编写? 如果是,请记住任何说明. 解决方法
此答案中的代码将复制任何Excel文件并将其切换到启用宏的工作簿.我已经针对一个简单的Excel 2016工作簿和宏启用工作簿对其进行了测试,它在源文件所在的同一目录中创建了一个新文件SaveMEW.xlsm.确保将源文件的完整路径放入`_sourceFile变量中.
var _sourceFile = " PATH TO YOUR TEMPLATE FILE "; using (var templateFile = File.Open(_sourceFile,FileMode.Open,FileAccess.Read)) { using (var stream = new MemoryStream()) { templateFile.CopyTo(stream); using (var spreadsheetDocument = SpreadsheetDocument.Open(stream,true)) { spreadsheetDocument.ChangeDocumentType(SpreadsheetDocumentType.MacroEnabledWorkbook); } byte[] buffer = stream.ToArray(); MemoryStream ms = new MemoryStream(buffer); FileStream file = new FileStream(System.IO.Path.GetDirectoryName(_sourceFile) + "/SaveMEW.xlsm",FileMode.Create,FileAccess.Write); ms.WriteTo(file); file.Close(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Swift 2.0学习笔记(Day 3)——Swift 2.0之后增加的关键字
- AJAX总结之XMLHttpRequest对象的五步使用法
- ruby – 选择大于总和的5%的数组元素
- c# – 如何隐藏ListView ColumnHeader?
- cocos2d_x_05_Box2D物理引擎
- c# – Twilio的TwilioRestClient SendSmsMessage返回null
- 超全的js正则表达式整理笔记
- ios – 如何在Xcode控制台中禁用os_log_info和os_log_debug
- objective-c – 枚举的非整数底层类型
- Assimp查看器比同一个.obj模型文件上的Assimp C导入器快得多