51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System.Text;
|
|
using NewLife;
|
|
using NewLife.IO;
|
|
using Xunit;
|
|
|
|
namespace XUnitTest.IO;
|
|
|
|
public class ExcelReaderTests
|
|
{
|
|
[Fact]
|
|
public void Test1()
|
|
{
|
|
var type = GetType();
|
|
var stream = type.Assembly.GetManifestResourceStream(type.Namespace + ".excel.xlsx");
|
|
Assert.NotNull(stream);
|
|
|
|
var reader = new ExcelReader(stream, Encoding.UTF8);
|
|
var rows = reader.ReadRows().ToList();
|
|
Assert.Equal(927, rows.Count);
|
|
|
|
var names = "序号,名字,昵称,启用,年龄,生日,时间,余额,比率,开始时间,结束时间".Split(',');
|
|
var fields = rows[0].Cast<String>().ToArray();
|
|
Assert.Equal(names.Length, fields.Length);
|
|
for (var i = 0; i < names.Length; i++)
|
|
{
|
|
Assert.Equal(names[i], fields[i]);
|
|
}
|
|
|
|
var values = "111,Stone,大石头,1,36.6,1984-07-01,2020-03-04 20:08:45,323.452,0.234,11:22:00,23:59:00".Split(',');
|
|
var row1 = rows[1];
|
|
Assert.Equal(values.Length, row1.Length);
|
|
for (var i = 0; i < values.Length; i++)
|
|
{
|
|
if (row1[i] is DateTime dt)
|
|
Assert.Equal(values[i].ToDateTime(), dt);
|
|
else if (row1[i] is TimeSpan ts)
|
|
Assert.Equal(TimeSpan.Parse(values[i]), ts);
|
|
else
|
|
Assert.Equal(values[i], row1[i] + "");
|
|
}
|
|
}
|
|
|
|
//[Fact]
|
|
public void Test2()
|
|
{
|
|
var reader = new ExcelReader("test.xlsx");
|
|
var rows = reader.ReadRows().ToList();
|
|
Assert.Equal(927, rows.Count);
|
|
}
|
|
}
|