ClosedXML导出到xlsx错误:“无法将单元格值设置为'+ uniqueidentifier

时间:2018-06-21 12:14:56

标签: vb.net export-to-excel xlsx closedxml

我希望创建一个简单的Windows服务,以通过.NET数据表将SQL表中的数据直接导出到Excel xlsx文件中。

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

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

其他信息:无法将单元格值设置为[在此处插入uniqueidentifier]“

有什么简单的方法解决这个问题吗?

示例代码:

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

1 个答案:

答案 0 :(得分:1)

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

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

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