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

jjlook 2003-11-29 09:39:39
以前公司写的一个人力资源管理系统,其中有一项功能是把查询出来的员工资料导出到EXCEL中去。现在发现一个问题,就是导出到EXCEL表格中后“身份证”这一项显示为科学记数发。靠,原来EXCEL默认 如果数字太长就默认为科学记数法。请大家帮我想想怎么提前设置EXCEL中某列的数据类型呢?跪谢了!:(
...全文
60 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

7,789

社区成员

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

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