c# - 如何在 OpenXML SpeadsheetDocument 中设置或清除作者
问题描述
在 C#.Net 中使用 OpenXML SpreadsheetDocument 类创建电子表格时,作者和上次保存的字段设置为“James Westgate”。
如何清除或覆盖 James 的名字?
SpreadsheetDocument doc = SpreadsheetDocument.Open(stream, true);
doc.PackageProperties.Creator = "sh";
...不适合我。
更新:-
using System;
using System.Windows.Forms;
using System.IO;
using DocumentFormat.OpenXml.Extensions;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
namespace OpenXMLProps
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public MemoryStream Execute()
{
MemoryStream stream = SpreadsheetReader.Create();
using (SpreadsheetDocument doc = SpreadsheetDocument.Open(stream, true))
{
WorksheetPart worksheetPart = SpreadsheetReader.GetWorksheetPartByName(doc, "Sheet1");
WorksheetWriter writer = new WorksheetWriter(doc, worksheetPart);
doc.PackageProperties.Creator = "Finbar mahoolahan";
SpreadsheetWriter.Save(doc);
return new MemoryStream(stream.ToArray());
}
}
private void button1_Click(object sender, EventArgs e)
{
using (FileStream fs = new FileStream("excel_test.xlsx", FileMode.Create, FileAccess.Write))
{
MemoryStream excel_stream = Execute();
excel_stream.WriteTo(fs);
}
}
}
}
解决方案
我相信(不看现在可能已经有 8 年历史的代码)有一个基本文档构成了模板,这可能与我的名字相关联。这是作为资源嵌入到 dll 中的。
我建议尝试从 CodePlex 下载原始SimpleOOXml源代码并尝试修改文档。您也可以针对现代版本的 OpenXML 库重新编译。
推荐阅读
- wordpress - Wordpress 类别帖子按标签过滤
- html - 图片卡/w Avatar 的 CSS 边框问题,当 600 像素或更大时,我无法将卡片与表单对齐
- javascript - 如何将 cookie 从一个页面写入另一个页面
- html - How do I modify my host file so I can access my web page through a host name?
- java - short -> int -> long 类型提升:是否有任何开销?
- artifactory - Artifactory PostgreSQL 数据库中没有行
- html - 如何使用模型将数据添加到表中 - HTML
- angular - 从 nb-select 中获取选定的文本
- python - 用于真实数据的 python mathplotlib
- python - 发生异常:配置不当