输出EXCEL单元格设置问题

lgqiu2008 2009-04-08 11:33:03
现把datagridview的数据导出到EXCEL,但是有个流水号(比如200904070002)转换到EXCEL时,变成2.00904E+11,请问如何在导出时设置?
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgqiu2008 2009-04-08
  • 打赏
  • 举报
回复
流水号已转换成String,数据导出来之后调整流水号对应的cell格式为数值,小数位数为0即可变回200904070001.如何在导出函数里设置啊?
ztmdsbt 2009-04-08
  • 打赏
  • 举报
回复
@HOHO2007,你的方法是不是指已经有Excel的情况?还是说直接在程序中就创建Excel模板?
HOHO2007 2009-04-08
  • 打赏
  • 举报
回复
可是设置一个Excel模板,设置列的显示方式
ztmdsbt 2009-04-08
  • 打赏
  • 举报
回复
然后把得到的dataArray加入Sheet.

if (dataArray != null)
{
sheet.get_Range("A1", sheet.Cells[rowCount, colCount]).Value2 = dataArray;
}
ztmdsbt 2009-04-08
  • 打赏
  • 举报
回复
前些天我正好做过.
方法不是很好.不知道各位大牛有没有更好的办法.贴代码:

for (int i = 0; i < colCount; i++)
{
dataArray[0, i] = dt.Columns[i].Caption;
switch (dt.Columns[i].DataType.ToString())
{
case "System.String":
{
sheet.get_Range(sheet.Cells[1, i + 1], sheet.Cells[rowCount, i + 1]).NumberFormatLocal = "@";
break;
}
case "System.Double":
{
sheet.get_Range(sheet.Cells[1, i + 1], sheet.Cells[rowCount, i + 1]).NumberFormatLocal = "$0.0000";
break;
}
case "System.Int32":
{
sheet.get_Range(sheet.Cells[1, i + 1], sheet.Cells[rowCount, i + 1]).NumberFormatLocal = "@";
break;
}
default:
{
sheet.get_Range(sheet.Cells[1, i + 1], sheet.Cells[rowCount, i + 1]).NumberFormatLocal = "G/通用格式";
break;
}
}
for (int k = 0; k < rowCount; k++)
{
dataArray[k + 1, i] = dt.Rows[k][i];//k + 1的目的是把标题行空出来.
}
修改一下昵称 2009-04-08
  • 打赏
  • 举报
回复
学习,
freewind0521 2009-04-08
  • 打赏
  • 举报
回复
可以在每条数据前加上单引号
如: '200904070002
himoggy 2009-04-08
  • 打赏
  • 举报
回复
支持楼上的,确实不用在程序里写
HOHO2007 2009-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ztmdsbt 的回复:]
@HOHO2007,你的方法是不是指已经有Excel的情况?还是说直接在程序中就创建Excel模板?
[/Quote]

是自己建立一个Excel模板,个人觉得没有必要用程序写

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧