ClosedXML Export to xlsx error: 'Unable to set cell value to ' + uniqueidentifier

ClosedXML Export to xlsx error: 'Unable to set cell value to ' + uniqueidentifier

我想创建一个简单的 windows 服务,通过 .NET 数据表从 SQL 表中导出数据,直接导出到 Excel xlsx 文件。

在测试 ClosedXML 时,我发现当第一列是唯一标识符时,ClosedXML.dll 错误

“'System.ArgumentException' 类型的未处理异常发生在 ClosedXML.dll

其他信息:无法将单元格值设置为 [在此处插入唯一标识符]

有没有简单的方法解决这个问题?

示例代码:

Private Sub ExportToxlsxUsingClosedXML

    Dim appPath As String = Directory.GetCurrentDirectory()
    Dim filename As String = appPath & "\mytest_" & Format(Now, "yyyyMMddHHmmss") & ".xlsx"

    Dim SQL_Query As String = "select * FROM [mydb].[dbo].[mytable] where myDate >= '2017-01-01' "

    Dim myTable As DataTable = CLS_SQL.SQL_Retrieve(SQL_Query)

    Dim wb As XLWorkbook = New XLWorkbook
    wb.Worksheets.Add(myTable, "MyData")
    wb.SaveAs(filename)

End Sub

从您的发现看来,ClosedXML 不适用于 uniqueidentifier 类型。

但是,由于它确实适用于字符串类型,因此您可以在 SQL 查询中将适当的列转换为 VARCHAR(36)。

如果需要的话,可以在 .NET 中 parse it to a Guid