我正在使用将我的客户数据导出到 CSV 的 ASP.NET 应用程序,我需要我的客户电话号码带有前导零。我需要电话号码不带“-”且不带引号,并且由于我的应用程序的性质,我不能使用 EPPLUS 等 3rd 方产品。我试图放置一个空格并让 CSV “理解”我需要将电话号码作为文本,但这似乎不正确。
我想知道如何在不使用第三方产品的情况下使 excel 包含前导零。
谢谢
使用以下格式更改保存在 csv 中的数据:
="00023423"
CSV 示例:
David,Sooo,="00023423",World
这将在 excel 中显示 00023423 而不是 23423。
public void CreatingCsvFiles(Client client)
{
string filePath = "Your path of the location" + "filename.csv";
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
}
string delimiter = ",";
string[][] output = new string[][]{
new string[]{ "=\"" + client.phone + "\"", client.name }
};
int length = output.GetLength(0);
StringBuilder sb = new StringBuilder();
for (int index = 0; index < length; index++)
sb.AppendLine(string.Join(delimiter, output[index]));
File.AppendAllText(filePath, sb.ToString());
}
灵感来自http://softwaretipz.com/c-sharp-code-to-create-a-csv-file-and-write-data-into-it/
重要的部分:
"=\"" + client.phone + "\"", client.name
如果电话号码是 int,当然要添加 .toString()。
将电话号码打印到 CSV,并在前面加上 ' (单引号),所以它看起来像:
"Some Name","'0000121212"
Excel 应将其0000121212
视为字符串。
我相信将数字转换为像公认答案这样的公式可能不是对所有人都有帮助的解决方案。
我采用的替代解决方案是在整数值之前添加一个制表符空格。
例子:
以phoneNumber
包含我们的 int 值的字符串变量
解决方案:
"\t" + phoneNumber
如果您已经知道手机内必须有多少号码,您可以这样做
phoneNumber.ToString("000000000000")
在这个例子中,我认为phoneNumber
是int
并且所需的数字长度是12
。