最近我投入了负责更新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文件可在机器上,在打印之前。

如果你愿意生活在安装.NET运行时您可以向COM公开.NET类包装在选项#2图书馆。类只是传递呼叫ExcelXMLwriter。

另一种方法是研究XML标准,编写自己的作家不过那可能矫枉过正的项目。

至于OpenOffice的看一看此处。尤其是这个网页。这里的VBA部分。似乎存在可以使用COM组件。

有可能通过使用一个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”)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top