可以使用Office开发人员工具创建/操作excel文件吗?

时间:2016-02-08 17:39:50

标签: vb.net visual-studio-2013 console-application office-interop .net-4.5.2

我当前的控制台应用程序项目使用office.interop.excel来创建和更新Excel文件。该项目正在升级,正在迁移到不安装办公室的新服务器。

我见过很多关于创建没有安装办公室的excel文件的问题,并且看到了很多使用EPPlus,ClosedXml等的答案。但是只是想知道是否可以使用office developer extensions创建excel文件? 如果是的话,有人可以给我一个例子吗?

我目前的应用程序代码与下面类似。我删除了大部分代码,下面的代码没有编译。这只是为了给出一个想法。

Imports Excel = Microsoft.Office.Interop.Excel

Public Class MyExcelClass

    Private Sub Export()
            Dim workbooks As Excel.Workbooks = exc.Workbooks
            Dim myArrayList = GetData() 'Records in ArrayList
        Dim workbook As Excel.Workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet)

        ''one sheet
        Dim sheets As Excel.Sheets = workbook.Worksheets

        Dim worksheet1 As Excel.Worksheet = CType(sheets.Item(1), Excel.Worksheet)
        If worksheet1 Is Nothing Then
        WriteLog("ERROR: worksheet1 == null")
        Exit Sub
        Else
        worksheet1.Name = "My excel sheet"
        End If

        ''create one sheet
        Me.CreateSheet(worksheet1, 1, myArrayList)

        ''save the spreadsheet! 
        Dim sFilename As String = "C:/1.xlsx"
        workbook.SaveAs(sFilename)

        Try
        exc.Quit()
        exc = Nothing
        Catch ex As Exception
        'ignore
        End Try
    End Sub

    Private Sub CreateSheet(ByRef sheet As Excel.Worksheet, ByVal iSheetID As Integer, ByVal myArrayList As ArrayList)
        With sheet
            .Range("A1:Z10000").Font.Size = 10

        '.... More code with range to set the alignment etc.
        '.... Manipulate the arylRecords and modify the sheet
        End With 'With sheet
    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

通过"官方开发人员扩展"我假设您的意思是VSTO,可能还有更新的JavaScript API。这些都是用于与Office应用程序界面内的用户交互的技术。因此1)他们不在服务器环境中工作; 2)他们需要Office的许可安装。

从Microsoft / Visual Studio方面,Office Open XMl文件格式是为在服务器环境中创建Office文档而设计的,而Open XML SDK是开发人员友好的"这样做的方式。但是,对于非常大的Excel工作簿,它确实存在性能问题。

我想你提到的工具也会利用OOXML文件格式,虽然我不熟悉它们。

讨论使用Open XML文件格式的工具和方法的一个地方是OpenXmlDeveloper.org。