如何创建通过VB6 Excel工作表,而不Excel对象?
-
11-07-2019 - |
题
最近我投入了负责更新VB6的数据收集应用程序,添加到生成Excel报表,并通过应用程序进行打印的能力(两者都必须在同一台计算机上完成)。通常这不会是一个问题,我已经生成Excel中使用Excel对象之前,VB6的报告。
所以,我继续和编码的变化一起,提出他们,然后我被告知,在此方案将isntalled机器不会有它的Excel中的一个完整副本,我必须拿出另一溶液
我试图创建分隔文件(逗号分隔或文本),但是当这些文件与Excel打开他们不要格式化很好即,如果一个小区具有20个字符,一半的chracters将被切断,由于固定单元的大小。
我有一对夫妇更多的想法:
1)我知道的OpenOffice有一个API。可这个API可以用来产生正确格式化的excel文件?是否有一个COM对象可以使用吗?
2),我发现这个工具: http://www.carlosag.net/Tools/ExcelXmlWriter / 然而,这是写在VB.NET。我还可以在VB6中使用这个工具?
我真的很为难,不知道往哪个方向下一任。任何人有任何关于上述utitiles什么想法?另外,我也开放给任何其他建议/更好的方法。任何会帮助我完成这个任务,将不胜感激!
注意:将用于查看这些报告的Excel版本是Excel 2007中
解决方案 10
我找到了解决方案:
我发现,可用于创建和打印Excel电子表格的DLL。我认为这是一样的XML作家,但对于VB6。
其他提示
让我们来看看这两个要求:
添加生成Excel报告的能力和通过应用程序打印它们。强>
和
在此程序将被isntalled [原文如此],机器将不具有的Excel完整副本
除非我误解你,那似乎是相互排斥的。如果你的意思是你只可以产生一台机器上的报告,他们会被视为和其他地方打印,你可以尝试使用的 SPREADSHEETML 。
谷歌搜索上SPREADSHEETML其他信息时要小心:有一个的很多的误传,在那里,混淆SPREADSHEETML与Office 2007用于Excel中新的XML格式SPREADSHEETML工作早在OFFICEXP的,并且即使在办公室狭义2000。
您可以将Excel文件保存为HTML。在一个web应用程序,我写的是需要将数据导出为Excel,我刚刚创建像一个出类拔萃出口的HTML文件。然后,我担任它作为应用程序/ vnd.ms - Excel中。 Excel打开它就好了。你也许可以做类似的事情。
您也可以找到像你链接的一个,因为我认为他们是XML的衍生物直接写入新的Office文件格式的库。
创建CSV文件,你通常会。
让您的桌面应用程序做的格式,其中XLS文件可在机器上,在打印之前。
有可能通过使用一个Jet连接创建没有Excel中安装在机器上** Excel工作簿 - 任何喷气连接 - 于执行“使表查询” SQL DML或CREATE TABLE
SQL DLL,其中所讨论的表是一个Excel一个如考虑这个VBA代码:
Dim cat
Set cat = CreateObject("ADOX.Catalog")
With cat
' Create a new Jet .mdb
.Create _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & _
Environ$("temp") & "\DropMe.mdb"
' Use .mdb's Jet connection to create an Excel table
' (will create a new workbook to contain it)
.ActiveConnection.Execute _
"CREATE TABLE" & _
" [Excel 8.0;HDR=NO;Database=C:\db.xls;].[Sheet1]" & _
" (col FLOAT);"
End With
Jet是一个弃用Windows组件,永远存在于预Windows Vista的机器和保持从MS经由MDAC免费下载。
这是说,“通过[EXCEL]应用打印出来”你显然需要将Excel应用程序!
**我认为这是可能的:没有的Excel上测试我无法找到一个机器
!检查这样的: http://support.microsoft.com/default.aspx? SCID =个kb; EN-US; Q271572
执行相同并保存.xls扩展名而不是文件。
可替换地,可以创建HTML表中-momery内容并将其写入到文件中,与扩展的xls。
创建从VB6一个SpreadsheetML中的文件应该是很简单的它只是包含XML的特定味道的文本文件。我相信你可以从MSDN的SpreadsheetML和WordML中的所有文档。
我目前产生从vb.net应用程序中使用的SpreadsheetML大约60不同定制报告。至少有一个潜在的问题是由于在Excel 2007中实现在文件扩展名和文件安全性的变化如果您生成一个基于SpreadsheetML中的Excel文件,并使用.xls扩展它会在Excel 2003 2007中打开就好了,会弹出一个对话框,通知您的文件扩展名并没有文件内容相匹配。这将打开,并警告对话框后正确显示该文件。如果您更改的SpreadsheetML文档扩展到.XML时,Excel 2007将与无怨打开它。但是你的基于XML的电子表格可在IE浏览器上运行Excel 2003中打开机
我使用 NPOI 它不使用Excel库并在Excel中给出输出2003格式
我太会去的CSV选项。不需要DLL或其它类型的对象。一个需要注意的是要非常小心你的号码正在使用,因为1,024.00值会产生两列和软管整个工作簿的格式。这将被格式化为类似格式(Numberfield, “#########。#0”)