diff --git a/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/Excel/Cells/XLCell.cs index 3ae83b6..ca7c91d 100644 --- a/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/Excel/Cells/XLCell.cs @@ -223,7 +223,7 @@ // For SetValue we set the cell value directly to the parameter // as opposed to the other SetValue(object value) where we parse the string and try to decude the value - if (value is String || value is char) + if (value is String || value is char || value is Guid) { parsedValue = value.ToInvariantString(); _dataType = XLDataType.Text; diff --git a/ClosedXML_Tests/Excel/Cells/XLCellTests.cs b/ClosedXML_Tests/Excel/Cells/XLCellTests.cs index 311659b..410e744 100644 --- a/ClosedXML_Tests/Excel/Cells/XLCellTests.cs +++ b/ClosedXML_Tests/Excel/Cells/XLCellTests.cs @@ -109,6 +109,16 @@ } [Test] + public void InsertData_with_Guids() + { + var ws = new XLWorkbook().Worksheets.Add("Sheet1"); + ws.FirstCell().InsertData(Enumerable.Range(1, 20).Select(i => new { Guid = Guid.NewGuid() })); + + Assert.AreEqual(XLDataType.Text, ws.FirstCell().DataType); + Assert.AreEqual(Guid.NewGuid().ToString().Length, ws.FirstCell().GetString().Length); + } + + [Test] public void IsEmpty1() { IXLWorksheet ws = new XLWorkbook().Worksheets.Add("Sheet1"); @@ -340,6 +350,23 @@ } [Test] + public void SetCellValueToGuid() + { + var ws = new XLWorkbook().AddWorksheet("Sheet1"); + var guid = Guid.NewGuid(); + ws.FirstCell().Value = guid; + Assert.AreEqual(XLDataType.Text, ws.FirstCell().DataType); + Assert.AreEqual(guid.ToString(), ws.FirstCell().Value); + Assert.AreEqual(guid.ToString(), ws.FirstCell().GetString()); + + guid = Guid.NewGuid(); + ws.FirstCell().SetValue(guid); + Assert.AreEqual(XLDataType.Text, ws.FirstCell().DataType); + Assert.AreEqual(guid.ToString(), ws.FirstCell().Value); + Assert.AreEqual(guid.ToString(), ws.FirstCell().GetString()); + } + + [Test] public void ValueSetToEmptyString() { string expected = String.Empty;