首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在OpenXMLSDK2.5中使用C#如何将单元格的值单个字符设置为特定的单个字体颜色

在OpenXMLSDK2.5中使用C#如何将单元格的值单个字符设置为特定的单个字体颜色
EN

Stack Overflow用户
提问于 2014-12-02 16:17:57
回答 1查看 1.8K关注 0票数 0

我想对我的氨基酸进行着色,从目前输出氨基酸的c#中自动输入一个字母代码。

电子表格的输出是正确的,我有一个列,如下例所示:

代码语言:javascript
运行
复制
A B
1 KJAGLKJGKASLJG
2 FLFSFHDSHDSHHF
3 KJSDALKDJKLFJK
4 KLFDJSHASDFFSD

每一个不同的人物都会被赋予自己的颜色。例如,K是红色的,L是黄色的,D是橙色的。这必须使用Open,而不是Excel编程或VBA脚本。

目前,单元格是这样输出的,但它们使用的是默认样式表。

代码语言:javascript
运行
复制
string columnName = AlphabetLetterRollOver((int) columnIndex);
string cellRef = columnName + (rowIndex + 1);
Cell cell1 = new Cell {CellReference = cellRef, StyleIndex = 1U};
cell1.DataType = CellValues.String;
CellValue cellValue1 = new CellValue();
cellValue1.Text = columnValue;
cell1.Append(cellValue1);
row1.Append(cell1);

为了实现我想要的结果,我尝试了以下代码作为测试用例,但是它失败了;它引发了一个异常:

代码语言:javascript
运行
复制
RunProperties runProperties = new RunProperties();
FontSize fontSize = new FontSize() {Val = 10D};
Color color = new Color() {Rgb = "FF000000"};
RunFont runFont = new RunFont() {Val = "Consolas"};
FontFamily fontFamily = new FontFamily() {Val = 3};

runProperties.Append(fontSize);
runProperties.Append(color);
runProperties.Append(runFont);
runProperties.Append(fontFamily);

Run run = new Run();
Text text = new Text();
text.Text = "A";

run.Append(runProperties);
run.Append(text);

cell1.Append(run);
row1.Append(cell1);

引发的异常如下:

代码语言:javascript
运行
复制
Exception: System.InvalidOperatioonException
Message: Cannot insert the OpenXmlElement "newChild" because it is part of a tree.
Source: DocumentFormat.OpenXml
StrackTrace:    at DocumentFormat.OpenXml.OpenXmlCompositeElement.AppendChild[T](T newChild)
   at DocumentFormat.OpenXml.OpenXmlElement.Append(OpenXmlElement[] newChildren)

任何想法都将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 15:12:18

您需要做的是创建shared strings,并将每个字母设置为所需的颜色。然后把它们中的多少附加到你想要的细胞里。

编辑-

下载OpenXMLSDKToolV25.msi

现在是诀窍,OpenXML生产力工具是您需要的。它允许您对现有的Excel文件眉毛,并将其分解为代码:观看

现在,您需要做的是手动创建一个Excel表,在您的示例中使用多个colur文本,然后使用生产力工具打开这个Excel文件,并理解代码。请注意,您需要了解电子表格文件结构才能理解此代码提交[这个]。现在编写您的代码以满足您的要求使用代码的生产力工具

注:一旦您使用生产力工具分析了虚拟电子表格,您就会理解为什么给出或指导代码示例作为答案是不实际的。试着用一个带有多色文本的单元格

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27254018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档