标题:【求助】VB中的ListView保存成Excel报错的问题,有没有其他解决方案
只看楼主
叶子三分青
Rank: 1
来 自:中国
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-23
结帖率:0
 问题点数:0 回复次数:13 
【求助】VB中的ListView保存成Excel报错的问题,有没有其他解决方案
公司的老程序导出为Excel的方法是引用了Ms Excel 12.0 Object Library然后 CreateObject("Excel.Application") ,但我的新电脑上安装了Office2007之后导出会出现报错的问题(自动化错误,对象库未注册),在网上找了很多方法都没解决(重新注册控件、重装Office等),客户的电脑也有几台会出现这样的问题(甚至也有没装2007的Office,用WPS的),因此我想问有没有其他DLL或解决方案可以直接根据listView生成Excel文件,免去安装Office这一步。
搜索更多相关主题的帖子: 解决方案 Excel ListView 其他 报错 
2021-02-23 10:05
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
直接根据listView生成Excel文件,免去安装Office这一步。

这是不可能的

你使用EXCEL / WORD库,首先你电脑里要有库。安装库就是安装office或wps。这一点国外网站有讨论过。

不过有些公司网站写,它们开发的有接口可以操作、生成对应格式的文件。

[此贴子已经被作者于2021-2-23 11:15编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 11:06
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
白天查了一下,可以使用生成XML的方式,来生成 XLSX 类型的 Excel 的文件格式。
xlsx是一个zip压缩包,解压后有几个文件,你依照这样的格式去写xml,最后打包成 xlsx 就可以了。

关键是这个XML:工作簿1.xlsx\xl\worksheets\sheet1.xml
然后内容是这些,其他都可以直接使用原始文档
<sheetData>
  <row r="1" spans="1:3">
    <c r="A1"><v>1</v></c>
    <c r="B1"><v>2</v></c>
    <c r="C1"><v>3</v></c>
  </row>
  <row r="2" spans="1:3">
    <c r="A2"><v>4</v></c>
    <c r="B2"><v>5</v></c>
    <c r="C2"><v>6</v></c>
  </row>
</sheetData>


[此贴子已经被作者于2021-2-23 20:35编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2021-02-23 20:26
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
这前面发了好多EXCEL操作代码,楼主可以搜索一下。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 20:33
叶子三分青
Rank: 1
来 自:中国
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-23
得分:0 
回复 4楼 yuma
我电脑上明确安装了office,VB引用里面也能看到库是有的,但是我就是一用Excel的对象就会报错,所以才想问问有没有别的办法,或者解决我这个报错的办法
2021-02-23 21:52
叶子三分青
Rank: 1
来 自:中国
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-23
得分:0 
回复 3楼 风吹过b
没尝试过VB做压缩,迟点我看看怎么做,我看了下面这个文章,也只说了直接写xml,保存是直接保存xls格式,不知道行不行
https://www.

[此贴子已经被作者于2021-2-24 08:01编辑过]

2021-02-23 21:57
叶子三分青
Rank: 1
来 自:中国
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-23
得分:0 
回复 6楼 叶子三分青
刚才尝试了一下,将文档打包成zip之后excel打开报错(文档损坏)……是不是压缩是别的格式的?
2021-02-24 08:36
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
你代码发上来,我们看看。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-24 10:18
叶子三分青
Rank: 1
来 自:中国
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-23
得分:0 
回复 8楼 yuma
Dim Excels As New Excel.Application
Excels.Visible = False '这一句就直接报错了


另外那个压缩成zip的我是手动用7-Zip解压和压缩的,压缩之后改扩展名之后打开就报错,我看网上好像都是拖回到压缩包里的,重新打包没有人提到过……



[此贴子已经被作者于2021-2-24 11:02编辑过]

2021-02-24 10:58
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
手动修改文件测试了下,只修改这部分,然后使用winrar压缩,文件格式选择 zip ,然后改名,wps打开不报错,修改生效。
<sheetData><row r="1" spans="1:3"><c r="A1"><v>1</v></c><c r="B1"><v>2</v></c><c r="C1"><v>3</v></c></row><row r="2" spans="1:3"><c r="A2"><v>4</v></c><c r="B2"><v>5</v></c><c r="C2"><v>6</v></c></row><row r="4" spans="1:3"><c r="A4"><v>7</v></c><c r="B4"><v>9</v></c><c r="C4"><v>10</v></c></row></sheetData>
----------------------------------------------
先直接保存文件头
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas. xmlns:r="http://schemas. xmlns:xdr="http://schemas. xmlns:x14="http://schemas. xmlns:mc="http://schemas. xmlns:etc="http://www. ref="A1:C2"/><sheetViews><sheetView tabSelected="1" workbookViewId="0"><selection activeCell="E8" sqref="E8"/></sheetView></sheetViews><sheetFormatPr defaultColWidth="9" defaultRowHeight="13.5" outlineLevelRow="1" outlineLevelCol="2"/>
然后再自己生成数据
<sheetData>              数据区开始
<row r="1" spans="1:3">  行开始,里面参数没去分析
<c r="A1"><v>1</v></c>   一个单元格,r=表示单元格编号,<v>1</v> 表示值
。。。。。
</row>                   行结束
</sheetData>             数据区结束
根据你要生成的数据,按行组合生成单元格信息,然后拼起来,组合成数据块。
最后写入文件结尾
<pageMargins left="0.75" right="0.75" top="1" bottom="1" header="0.5" footer="0.5"/><headerFooter/></worksheet>

更新完 sheet1.xml 后,再打包成 zip 格式文件,注意压缩包里路径问题。
然后再改名。



授人于鱼,不如授人于渔
早已停用QQ了
2021-02-24 13:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504937-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083314 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved