我试图使用EPPlus将一些IP地址写入excel。 实际上它不是真正的ip地址 - > 300.278.100它代表一个子网。我尝试这种格式:
cell.Style.Numberformat.Format = "##0.##0.##0";
cell.Value = val;
和
cell.Style.Numberformat.Format = "@";
cell.Value = val;
总是得到与上图类似的东西。 当你看到我得到不同的结果。我们可以在36892看到它应该是" 1.1.1"。 有些结果表示数字存储像文本一样,其他结果是文本。 我希望他们中的每个人都像文本一样存储,没有警告或类似ip格式的数字。
有谁知道我该如何实现它?
答案 0 :(得分:1)
问题是有多于一个小数点,在数字中没有多大意义。关于我能想到的最接近的,如果你想保留所有数字,那就像是:
//With Leading zeros - prints as "001.001.001" in excel
//Should work for all subnets
sheet1.Cells[1, 2].Style.Numberformat.Format = "000\\.000\\.000";
sheet1.Cells[1, 2].Value = 1001001;
不确定是否有办法可选择在这样的实数内显示零之间的零。我想你可以调整每个单元格,如:
//Without Leading zeros but has to be adjusted for each value
//print as "1.1.1" in excel
sheet1.Cells[1, 3].Style.Numberformat.Format = "0\\.0\\.0";
sheet1.Cells[1, 3].Value = 111;
//print as "1.11.1" in excel
sheet1.Cells[1, 4].Style.Numberformat.Format = "0\\.00\\.0";
sheet1.Cells[1, 4].Value = 1111;
不完全漂亮。否则,可以省略格式并将它们设置为字符串。