[英]How to get wrapped text from Excel cell?
我想知道如何使用 ClosedXML 從 Excel 單元格中獲取換行文本。
(ClosedXML版本為0.95.4,使用C#[Visualstudio 2017])
例如:excel 單元格數據(文本)如下
abc
xyz
我想
abc
xyz
(=包裝文本),但我得到abcxyz
(=無包裝文本)。
我嘗試了幾種方法(如下),結果都是一樣的。
tgtcell.RichText
tgtcell.GetString()
tgtcell.Value.ToString()
等等
誰能告訴我如何得到它?
現在原因已經知道了。 在輸入wrapped text的cell中,混入了unwrapped的。(wrapped只能通過指定style format。)可惜我測試的是cell,所以看起來不可讀。
(這更像是一個擴展評論,而不是一個明確的答案)
我創建了一個 Excel 文件,我在其中的單元格 A1 中鍵入了ABC<Alt>+<Enter>xyz
。 這將ABC
放在一行上,將xyz
放在它下面(都在同一個單元格中)。 然后我保存關閉了Excel。
然后我在微軟的“OpenXML Productivity Tool”中打開了這個文件(不幸的是,它已經從“Microsoft.com”中刪除,但仍然可以在 GitHub 上找到)。
如果查看文件的共享字符串部分,我可以看到它是 XML:
<x:sst count="1" uniqueCount="1" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:si>
<x:t>ABCxyz</x:t>
</x:si>
</x:sst>
但是,如果我查看反映的代碼(反映到 C# 中),我會看到:
public class GeneratedClass
{
// Creates an SharedStringTable instance and adds its children.
public SharedStringTable GenerateSharedStringTable()
{
SharedStringTable sharedStringTable1 = new SharedStringTable(){ Count = (UInt32Value)1U, UniqueCount = (UInt32Value)1U };
SharedStringItem sharedStringItem1 = new SharedStringItem();
Text text1 = new Text();
text1.Text = "ABC\nxyz";
sharedStringItem1.Append(text1);
sharedStringTable1.Append(sharedStringItem1);
return sharedStringTable1;
}
}
所以它看起來像 Excel 在單個單元格的行之間存儲一個 Unix 換行符。 我不知道為什么它沒有出現在 XML 中。
我遠不是 OpenXML 專家,但我已經成功地使用過它幾次(主要是為了生成文件,而不是解析它們)。 我從未使用過 ClosedXML。 我不知道Wrapped Text是什么意思(您的解釋也沒有幫助)。 但是,我可以在文件中看到兩行文本。
我不知道這是否會對您有所幫助 - 我希望如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.