导出数据到Excel时,如果没有安装Office,可以吗?

wts 2002-08-16 04:27:43
导出数据到Excel文件,要引用Excel类型库,编程时是不是必须安装了Office才可以啊?如果安装到没有安装Office的机器上,为什么我的程序会出错呢?
应该是到这里就出错了,提示“运行时错误,Activex控件不能创建对象”。应该如何解决呢?
...全文
938 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
wts 2002-08-17
  • 打赏
  • 举报
回复
我把库文件考出来使用,但是还是不行,注册表中没有对应的类信息!所以还是无法使用,应该怎么办呢?
wts 2002-08-17
  • 打赏
  • 举报
回复
miaoweijun(苗苗):
请问如何使用CSV格式啊?能告诉我吗?最好能有源码!谢了!
miaoweijun 2002-08-17
  • 打赏
  • 举报
回复
用CSV文件的格式呀。EXCEL可以识别CSV文件
feihong0233 2002-08-17
  • 打赏
  • 举报
回复
好像不用满足用户所有可能的要求啊~
做所有能做的合理不容易出错的就好了。
feihong0233 2002-08-17
  • 打赏
  • 举报
回复
呵呵,
为什么不做可以导出到Excel或者文本的呢?
你的库文件并不会比Excel大多少吧?
让用户拷贝库好了,
到有Excel的机器上用。

做两种导出让用户选一下~
wts 2002-08-17
  • 打赏
  • 举报
回复
feihong0233:你没有考虑到用户的多样性问题,如果用户就是要在没有Excel的机器上导出,然后再到有Excel的机器上打开Excel文件呢?
wts 2002-08-17
  • 打赏
  • 举报
回复
feihong0233:你的方法很好!
太好了!!!
终于解决!!!
谢谢大家!!!
给分!不过分不过,希望大家不要介意!
feihong0233 2002-08-17
  • 打赏
  • 举报
回复
才发现一个问题啊,
Excel可以打开Txt文件~
注意一下txt文件的格式就可以了,
两个字段间可以用tab分隔,
你输出txt文件,用tab分隔就行,如果一定要用excel打开就改一下扩展名,
我试过了很好用噢,呵呵,

比如你在文本里写:

a<tab>b<tab>

123<tab>45<tab>72<tab>

然后扩展名改为xls用Excel打开试一试啊
wurf0 2002-08-17
  • 打赏
  • 举报
回复
但是这样无法用EXCEL的具体的格式,只能是简单的文字+","文件
wurf0 2002-08-17
  • 打赏
  • 举报
回复
导出成csv格式的文件,给你一段程序吧:
strsql = "select * from table where dateValue(ActDatetime)>= #" & dtpDateF.Value & "# and dateValue(ActDatetime)<= #" & dtpDateT.Value & "#"
objCmd.CommandType = adCmdText
objCmd.ActiveConnection = gobjdbcn
objCmd.CommandTimeout = 300
objCmd.CommandText = strsql



Set rsResult = objCmd.Execute

Debug.Print strsql

strFile = txtPath.Text

Open strFile For Output As #2


count = 0
count1 = 0
prgDownload.Value = 0



If rsResult.EOF Then
MsgBox "No Records"
Close #2
Exit Sub
End If

rsResult.MoveFirst

Do While Not rsResult.EOF
count1 = count1 + 1
rsResult.MoveNext
Loop



If count1 = 0 Then



Else

rsResult.MoveFirst
Do While Not rsResult.EOF
count = count + 1
prgDownload.Max = count1
prgDownload.Value = count
For i = 0 To rsResult.Fields.count - 1
If IsNull(rsResult(i)) Then
strTemp = ","
Else
strTemp = rsResult(i) & ","
End If
'strTemp = strTemp
strWrite = strWrite & strTemp
'intLen = rsResult.Fields.Item(i).DefinedSize
'strTemp = strTemp & PaddingString(strField, intLen)
Next
Debug.Print strWrite
Print #2, strWrite
rsResult.MoveNext
strWrite = ""
Loop
MsgBox "DownLoaded OK!!!"
End If


rsResult.Close
Set rsResult = Nothing
Close #2
wts 2002-08-17
  • 打赏
  • 举报
回复
是啊,我也知道最好是安装,但是现在就是要考虑不安装的解决方案啊!拜托,各位!
peiji 2002-08-17
  • 打赏
  • 举报
回复
我觉得最好要安装啊
wts 2002-08-17
  • 打赏
  • 举报
回复
如果是97的话,应该怎样?能先给个思路吗?
Centrol_Office 2002-08-17
  • 打赏
  • 举报
回复
我明白你的意思! 不过这可能要分析EXCEL文件的原始格式才可以罗! 你用2000的话我帮不了你,如果是97的话就有这可能.
feihong0233 2002-08-16
  • 打赏
  • 举报
回复
你导出单个表的那段代码拿到没有Excel的机器上恐怕也不可以吧?
也是用了Excel对象啊,
如果一定要在没有Excel的机器上导出,
就算你导出了他用什么看啊?
还是导出文本吧。
没有Excel的机器上导出Excel文件好像没什么用啊。
wts 2002-08-16
  • 打赏
  • 举报
回复
可是我不想要控件啊!直接编写代码,难道就不可以,那我前面导出单个工作表为什么可以呢?
yunfengh 2002-08-16
  • 打赏
  • 举报
回复
一定要,不要不行
SnHnBn 2002-08-16
  • 打赏
  • 举报
回复
有办法,我已经做了一个控件,能把ADO Recordset的数据导成Excel、Access等多种常用格式。无需引用Excel组件,只要装好操作系统和MSDAC就成了。
wts 2002-08-16
  • 打赏
  • 举报
回复
怎么可能会没有呢?一定有,我相信这一点!拜托各位帮帮忙!
dpjing 2002-08-16
  • 打赏
  • 举报
回复
不安装Excel的解决方案
导成TXT,XML不是更好吗
加载更多回复(10)

7,762

社区成员

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

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