急:excel列格式的控制????

zcwmxn 2005-01-11 10:31:23
………………
GC.Collect();// clean up any other excel guys hangin' around...
excel.Visible = false;
//Get a new workbook.
oWB = (Excel._Workbook)(excel.Workbooks.Add( Missing.Value ));
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
for(int j=0;j<dt.Columns.Count;j++)
{
oSheet.Cells[1, j+1] = dt.Columns[j].ColumnName.ToString();
}
// build the sheet contents

foreach(DataRow Row in dt.Rows)
{
rowIndex++;
colIndex=0;
foreach(DataColumn Col in dt.Columns)
{
colIndex++;
if(Col.DataType == System.Type.GetType("System.DateTime"))
excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(Row[Col.ColumnName].ToString())).ToString("yyyy-MM-dd");
else
oSheet.Cells[rowIndex,colIndex]=Row[Col.ColumnName].ToString();
}
}

//Format A1:Z1 as bold, vertical alignment = center.
oSheet.get_Range("A1", "Z1").Font.Bold = true;
oSheet.get_Range("A1", "Z1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
……………………

用此种方法可以生成excel,但小弟有一个疑问比较着急

比如我的有一列表示材料编码,有材料编码 01010002
则按照上面的方法生成excel后,打开,看到的是 1010002,是系统认为此列为数字了。请问如何讲列的格式设置为文本,以及其他的。
...全文
523 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
dazhu2 2005-03-15
  • 打赏
  • 举报
回复
结分吧,呵呵
zcwmxn 2005-03-15
  • 打赏
  • 举报
回复
顶一下
zcwmxn 2005-02-04
  • 打赏
  • 举报
回复
呵呵,偶晓得 前面加"'","@"是可以实现的,而且已经用这种方法暂时解决了问题
现在是有点在这里钻牛角尖,只是搞不懂为什么

Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormat=Excel.XlParameterDataType.xlParamTypeWChar;

不可以。myrange.NumberFormat=Excel.XlParameterDataType.xlParamTypeWChar;是来做什么用的。
心情解码 2005-02-02
  • 打赏
  • 举报
回复
:)






--
landlordh 2005-02-02
  • 打赏
  • 举报
回复
eg.:

xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(5, 1)).NumberFormatLocal = "@" 'vb.net

--------------------------------------------------------------------
参考:

"¥#,##0.00;¥-#,##0.00" 货币
"0.00%" 百分比
"[DBNum1]yyyy""年""m""月""d""日""" 日期
fgc5201314 2005-02-02
  • 打赏
  • 举报
回复
可以以html格式写入..
dazhu2 2005-02-02
  • 打赏
  • 举报
回复
Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormat=Excel.XlParameterDataType.xlParamTypeWChar;
--------------
不能实现你的要求,我也是试出来的,你可以通过宏代码获得
zcwmxn 2005-02-01
  • 打赏
  • 举报
回复
Excel.XlParameterDataType.xlParamTypeWChar好像只能设置成自定义格式?能否解释具体些,或举个例子
到底
Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormat=Excel.XlParameterDataType.xlParamTypeWChar;
可以不可以实现呢》?
wgif_79 2005-02-01
  • 打赏
  • 举报
回复
0前面加一个单引号试试
haoco 2005-02-01
  • 打赏
  • 举报
回复
up
dazhu2 2005-01-25
  • 打赏
  • 举报
回复
Excel.XlParameterDataType.xlParamTypeWChar好像只能设置成自定义格式
zcwmxn 2005-01-24
  • 打赏
  • 举报
回复
Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormat=Excel.XlParameterDataType.xlParamTypeWChar;

为什么不行呢?
那Excel.XlParameterDataType.xlParamTypeWChar等其他各是什么意思呢?
dazhu2 2005-01-13
  • 打赏
  • 举报
回复
这样就可以解决了:

//设置列格式
Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormatLocal="@";

楼主给分吧!呵呵
coo_key 2005-01-13
  • 打赏
  • 举报
回复
execl定一个宏
然后再菜单设置显示text属性,然后察看宏代码就知道了
zcwmxn 2005-01-13
  • 打赏
  • 举报
回复
地址写错了,是 http://dotnet.aspx.cc
zcwmxn 2005-01-12
  • 打赏
  • 举报
回复
孟老师或其他高人:
按照 用
Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormat=Excel.XlParameterDataType.xlParamTypeWChar;


的类似方法能解决吗?!!

liulxmooo 2005-01-12
  • 打赏
  • 举报
回复
up
gongfangjsks 2005-01-12
  • 打赏
  • 举报
回复
net_lover(孟子E章) :我试过了,不过好象没有效果,还是老样子,请你再讲得详细点,谢!
孟子E章 2005-01-12
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AAB
李洪喜 2005-01-12
  • 打赏
  • 举报
回复
"'"+"01010002" 以这种方法写入就可以了。
加载更多回复(5)

111,097

社区成员

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

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

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