各位好人帮帮我啊!谢谢先!关于导出到EXCEL表格的问题。

jjlook 2003-11-29 09:39:39
以前公司写的一个人力资源管理系统,其中有一项功能是把查询出来的员工资料导出到EXCEL中去。现在发现一个问题,就是导出到EXCEL表格中后“身份证”这一项显示为科学记数发。靠,原来EXCEL默认 如果数字太长就默认为科学记数法。请大家帮我想想怎么提前设置EXCEL中某列的数据类型呢?跪谢了!:(
...全文
65 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoHo_Andy 2003-12-02
  • 打赏
  • 举报
回复
Set xlwk = xlApp.Workbooks.Add
Set xlSheet = xlwk.Worksheets.Add
xlSheet.Name = "统计报表"

就在这一句后面加上
xlApp.Columns(1).NumberFormatLocal = "@"

就行
jjlook 2003-12-02
  • 打赏
  • 举报
回复
Public Function funListviewToExcel(FileName As String, objListView As ListView, StrTitle As String)

On Error Resume Next

Dim xlApp As New Excel.Application
Dim xlwk As New Excel.Workbook
Dim xlSheet As New Excel.Worksheet
Dim i As Integer, J As Integer

Set xlwk = xlApp.Workbooks.Add
Set xlSheet = xlwk.Worksheets.Add
xlSheet.Name = "统计报表"

xlSheet.Cells(1, 1) = StrTitle
xlSheet.Range("A1", "Z1").Font.Bold = True
xlSheet.Range("A1", "Z1").Font.Size = 18
xlSheet.Range("A1", "Z1").Font.Color = vbBlue


xlSheet.Cells(2, 1) = "生成时间:" & Format(Date, "Long Date") & " " & Format(Time, "Long Time")
For i = 1 To objListView.ColumnHeaders.Count
xlSheet.Cells(4, i) = objListView.ColumnHeaders(i).Text
Next i


For i = 1 To objListView.ListItems.Count
xlSheet.Cells(i + 4, 1) = objListView.ListItems(i).Text
For J = 2 To objListView.ColumnHeaders.Count
xlSheet.Cells(i + 4, J) = objListView.ListItems(i).ListSubItems(J - 1).Text
Next J
Next i

xlwk.SaveAs FileName

xlApp.Visible = True

Set xlApp = Nothing
Set xlwk = Nothing
Set xlSheet = Nothing

Exit Function
handleError:
MsgBox "Error #: " & err.Number & vbCrLf & err.Description, vbCritical, "Critical Error"

End Function


以上是我的源程序,请问应该怎么样设置才能在生成的EXCEL中那个列的属性就是“文本”呢?谢谢先!
SoHo_Andy 2003-12-02
  • 打赏
  • 举报
回复
在VB中打开Excel文件
设置身份证编号那一列为文本类型显示即可,即无论数值与否都
按照文本来显示

Dim exApp As Excel.Application
Dim exwbook As Excel.Workbook
Set exApp = New Excel.Application
exApp.Visible = False
Set exwbook = exApp.Workbooks.Open(dirname & filename & ".xls")
exApp.Columns("B:B").Select
exApp.Selection.NumberFormatLocal = "@"
jpinglee 2003-12-02
  • 打赏
  • 举报
回复
//“身份证”这一项显示为科学记数发。靠,原来EXCEL默认 如果数字太长就默认为科学记数法。请大家帮我想想怎么提前设置EXCEL中某列的数据类型呢?

把"身份证"设置为字符型就ok了
hewei2003 2003-12-02
  • 打赏
  • 举报
回复
应该比较简单,我也做过导出数据到Excel中去,查一下Office的编程接口就OK了,我有时间帮你找
QQ33524826
神奇的章鱼哥 2003-12-02
  • 打赏
  • 举报
回复
很简单把模板列数据类型改为文本类型。
如果你有源代码可以改源代码,也很方便
soulland 2003-12-02
  • 打赏
  • 举报
回复
up
具体内容请参考我的BLOG:http://blog.csdn.net/smallwhiteyt/archive/2009/11/08/4784771.aspx 如果你耐心仔细看完本文,相信以后再遇到导出EXCLE操作的时候你会很顺手觉得SO EASY,主要给新手朋友们看的,老鸟可以直接飘过了,花了一晚上的时间写的很辛苦,如果觉得对你有帮助烦请留言支持一下,我会写更多基础的原创内容来回报大家。 C#导出数据到EXCEL表格是个老生常谈的问题了,写这篇文章主要是给和我一样的新手朋友提供两种导出EXCEL的方法并探讨一下导出的效率问题,本文中的代码直接就可用,其中部分代码参考其他的代码并做了修改,抛砖引玉,希望大家一起探讨,如有不对的地方还请大家多多包涵并指出来,我也是个新手,出错也是难免的。 首总结下自己知道的导出EXCEL表格的方法,大致有以下几种,有疏漏的请大家补充。 1.数据逐条逐条的写入EXCEL 2.通过OLEDB把EXCEL做为数据源来写 3.通过RANGE范围写入多行多列内存数据到EXCEL 4.利用系统剪贴板写入EXCEL 好了,我想这些方法已经足够完成我们要实现的功能了,方法不在多,在精,不是么?以上4中方法都可以实现导出EXCEL,方法1为最基础的方法,意思就是效率可能不是太高,当遇到数据量过大时所要付出的时间也是巨大的,后面3种方法都是第一种的衍生,在第一种方法效率低下的基础上改进的,这里主要就是一个效率问题了,当然如果你数据量都很小,我想4种方法就代码量和复杂程度来说第1种基本方法就可以了,或当你的硬件非常牛逼了,那再差的方法也可以高效的完成也没有探讨的实际意义了,呵呵说远了,本文主要是在不考虑硬件或同等硬件条件下单从软件角度出发探讨较好的解决方案。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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