我所说的等式是你在插入->等式时得到的等式格式
如果我将 MathML 代码复制到 word,它工作正常,所以我尝试将 MathML 标记连接到字符串,使用=CONCATENATE(...)
然后尝试从 excel 复制表格
到 word,查看 Word 是否自动格式化 MathML 代码,但由于我正在复制整个表格,我猜 Word 无法识别等式。
在这一点上,我正在寻找一种hacky方式来做到这一点,但我想我在这里问一下是否有人有任何想法。
编辑:
文本单元格中的数据是通过这样的连接形成的。这是上面示例中显示的 2 个文本单元格的公式。
=CONCATENATE(
"<math xmlns=""http://www.w3.org/1998/Math/MathML""> <mfrac> <mrow> <mi>",
D2,
"</mi><mo> </mo><mo>-</mo><mo>(</mo><mi>",
B2,
"</mi><mo>)</mo></mrow><mrow><mi>",
C2,
"</mi><mo>-</mo><mo>(</mo><mi>",
A2,
"</mi><mo>)</mo></mrow></mfrac></math>"
)
=CONCATENATE(
"<math xmlns=""http://www.w3.org/1998/Math/MathML""> <mfrac> <mrow> <mi>",
D3,
"</mi><mo> </mo><mo>-</mo><mo>(</mo><mi>",
B3,
"</mi><mo>)</mo></mrow><mrow><mi>",
C3,
"</mi><mo>-</mo><mo>(</mo><mi>",
A3,
"</mi><mo>)</mo></mrow></mfrac></math>"
)
编辑 2
所有单元格的屏幕截图:
这很有趣。如果将 MathML 代码
<math ... </math>
作为未格式化的文本粘贴到 Word 中,它将被格式化为公式。但是,如果它被格式化为 html(从网站复制)或对象(从 Excel 单元格复制),则不会。例如,如果您直接从超级用户复制以下内容:<math xmlns="http://www.w3.org/1998/Math/MathML"> <mfrac> <mrow> <mi>4</mi><mo> </mo><mo>-</mo><mo>(</mo><mi>2</mi><mo>)</mo></mrow><mrow><mi>3</mi><mo>-</mo><mo>(</mo><mi>1</mi><mo>)</mo></mrow></mfrac></math>
然后直接粘贴到 Word 中,它将粘贴为 HTML 格式的垃圾:
但是,如果您单击粘贴下拉菜单(或按 CTRL),然后选择“仅保留文本”(或使用选择性粘贴),它将正确格式化:
TL;博士
Excel 需要具有单个
<math...> ... </math>
MathML 元素的未格式化文本才能识别它并重新格式化它。从 Excel 粘贴多个单元格将不起作用,因为为了保留表格/单元格格式,Word 必须使用 HTML 格式(或作为 Excel 对象)粘贴数据,并且不会运行 MATHML 解析器。反之亦然,如果仅粘贴为文本,表格格式将丢失。此外,解析器只接受一个 MathML 元素,因此会因多个元素而失败,仅将所有元素粘贴为文本。多个方程粘贴的选项
=TEXTJOIN("",TRUE, B1:B10)
. 将结果复制并仅作为文本粘贴到 Word 中。编辑菊花链方程并在每个方程之间按 Enter 键将它们分成单独的方程。