我当前的控制台应用程序项目使用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
答案 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。