我希望创建一个简单的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
答案 0 :(得分:1)
从您的发现看来,ClosedXML不适用于uniqueidentifier类型。
但是,由于它确实适用于字符串类型,因此您可以在SQL查询中将相应的列强制转换为VARCHAR(36)。
如果需要,可以在.NET中parse it to a Guid。