Excel 怎样去除单元格中的tab分隔符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel 怎样去除单元格中的tab分隔符相关的知识,希望对你有一定的参考价值。
excel替换中没有通配符的使用,如果内容少,一个个的去除,如果内容多,将含tab分隔符的列选定,执行分列操作,再用连字符&把相应的列连起来。 参考技术A 在Excel中,是不能直接输入Tab字符的。但是如果Excel文件是从Word或者html网页导入的,就有可能在单元格中存在Tab字符。Tab字符在Excel单元格中是不显示的,只有拷贝到文本文件中才可见。在Office Excel 2003中是不能直接通过Excel的替换功能替换掉Tab字符,下面是一种替换方法:
在需要替换列的右边插入一空列;
在新列中使用函数,将原始列内容的Tab字符替换掉。函数为:SUBSTITUTE(H2,CHAR(9),"")
将新列中的内容复制到文本文件中;
将文本文件中的列内容复制回原始列中;
将新列删除掉即可。
经过以上5个步骤即可将Tab字符替换掉。Excel中的“CHAR(9)”就是Tab字符的ASCII码。
当全球化将逗号设置为小数分隔符时,如何在 OpenXML Excel 单元格中存储小数/双精度
【中文标题】当全球化将逗号设置为小数分隔符时,如何在 OpenXML Excel 单元格中存储小数/双精度【英文标题】:How store decimal/doubles in OpenXML Excel cells when globalisation sets comma as decimal separator 【发布时间】:2021-03-07 00:41:50 【问题描述】:我正在尝试在 OpenXML 中用 C# 创建 Excel 工作表,但最终 Excel 不得不“修复”工作簿,因为在 Excel /xl/worksheets/sheet1 中已使用逗号作为小数分隔符存储双精度数。 xml 文件。
我的 Excel 和 Windows 全球化是瑞典语,每当双精度转换为字符串时,它将小数分隔符设置为逗号。
当我做一个
double d = 355d/113d;
DocumentFormat.OpenXml.Spreadsheet.Cell cell = new Cell();
cell.CellValue = new CellValue(d);
cell.DataType = CellValues.Number;
Excel 的 /xl/worksheets/sheet1.xml 中实际存储的内容是
<x:c s="4" t="n">
<x:v>3,14159292035398</x:v>
</x:c>
用逗号作为小数分隔符。这使我的瑞典 Excel 强制“修复”并将单元格转换为文本/字符串而不是数值。我可以在 Excel 中轻松地手动转换为数值,但这在此应用程序中是不可接受的。
查看“修复”后的 /xl/worksheets/sheet1.xml 并手动将字符串转换为十进制值,它们存储为
<v>3.1415929203539825</v>
用点作为小数分隔符。 显而易见的解决方案 - 所以我认为 - 是用点而不是像
这样的东西强制存储我的十进制值double d = 355d/113d;
DocumentFormat.OpenXml.Spreadsheet.Cell cell = new Cell();
cell.CellValue = new CellValue(d.ToString().Replace(",", ".").Replace(" ", ""));
cell.DataType = CellValues.Number;
还有一些 (!) 更多变体,以确保 cell.CellValue 包含点而不是逗号。但后来我的瑞典 Excel 变得疯狂,拒绝将值解释为小数,而是将其设为 int。
所以我被困住了。有没有人知道如何在 DocumentFormat.OpenXml.Spreadsheet.Cell 中存储一个十进制值,Excel 将在默认情况下使用逗号作为小数分隔符的系统中正确解释而无需修复?
【问题讨论】:
【参考方案1】:还没有尝试过,但是类似的东西呢:
var nfi = System.Globalization.CultureInfo.InvariantCulture.NumberFormat;
...
cell.CellValue = new CellValue(d.ToString(nfi));
【讨论】:
以上是关于Excel 怎样去除单元格中的tab分隔符的主要内容,如果未能解决你的问题,请参考以下文章