There is no type in .NET which embeds both a DateTime and a CultureInfo. But you can make one yourself:
public class DateTimeAndCultureInfo {
public DateTime DateTime { get; set; }
public CultureInfo CultureInfo { get;set; }
}
However, when you get a date from an Excel library, such a type probably won't help much, because Excel doesn't (exclusively) rely on a CultureInfo to render its cells. Internally Excel uses its own kind of number format strings as described here:
https://support.office.com/en-us/article/available-number-formats-in-excel-0afe8f52-97db-41f1-b972-4b46e9f1e8d2
Tangentially, .NET supports its own kind of number format strings, which are similar to, but incompatible with Excel's number format strings:
https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings
Usually you need three separate pieces of information to display a value: the raw value, a number format string and a CultureInfo.
The CultureInfo stores basic stuff like decimal separator, thousand separator, currency symbol, default long/short date formats, and other locale-specific stuff, but technically does not control how the value appears on screen.
The CultureInfo is typically global to your application, f.ex taken from a configuration or OS, and indicates overall what language/country the application is running in. Only rarely would you want to bundle a CultureInfo with every DateTime instance.
What number format string to use may depend on the use case: some times you might want to display a short date (like "01-01-2020" in a list), some times you might want to display a longer version of the same date (like "1. january 2020" in an overview).
Other times, you might want to render a spreadsheet exactly like Excel. In these cases it makes sense to treat both the raw cell value and number format string as a single type, f.ex:
public class Cell {
public object Value { get; set; }
public string FormatString { get;set; }
}
.NET provides the individual pieces to work with dates/values however you want, but you have to write the code yourself to glue it all together depending on the use case, which can vary plenty.