Schema.ini 文件有不同的选项,您可以在这里阅读。
Schema.ini File (Text File Driver)
除其他外,您可以指定列数据类型以及小数点分隔符。例如,定义 4 列的架构,其中:
-
ColNameHeader=True:数据文件包含列定义
-
Format=Delimited(;):列之间用分号隔开
-
DecimalSymbol=,:小数点分隔符是逗号
-
Col(N)=ColumnName TYPE [WIDTH] [#]:列的名称和类型,以及(可选)列的宽度。宽度值 ([#]) 是必需的。
如果列可能包含不是系统默认值的货币符号,请指定货币格式。例如,使用 Euro € 符号:
-
CurrencySymbol=[Symbol]:数据文件中使用的货币符号。
-
CurrencyPosFormat=[N]:正值的符号位置。这可以是以下 4 个值之一:
0 = €1,1 1 = 1,1€ 2 = € 1,1 3 = 1,1 €
-
CurrencyNegFormat=[N]:同上,但可以指定更多位置。有关可能值的列表,请参阅之前链接的文档
-
CurrencyDigits=[N]:货币使用的小数位数
-
CurrencyThousandSymbol=[Symbol]:千位分隔符
-
CurrencyDecimalSymbol=[Symbol]:小数分隔符
CharacterSet 指定 CSV 文件使用的编码方式。标准值为:
-
ANSI(本地代码页)、OEM、Unicode。其他编码必须使用它们的 CodePage 来指定。例如,UTF-8 需要指定为 CodePage 65001。
系统中所有可用的代码页都列在此注册表项中:
HKEY_CLASSES_ROOT\MIME\Database\Charset
使用此 CSV 内容:
ID;Description;Quantity;FloatValue;Price
1;String 1;100;10,56;€10,79
2;String 2;101;12,72;€200,34
3;String 3;33;100657,72;€0,98
Schema.ini 文件可以如下:
[filename.csv]
ColNameHeader=True First row is the Columns Header
MaxScanRows=0 No auto-detect Column Type
CharacterSet=65001 UTF-8 file Format
Format=Delimited(;) Columns delimiter
DecimalSymbol=, Decimals separator
NumberLeadingZeros=1 Below 1 values leading zeros (0,12)
CurrencySymbol=€ Currency symbol (if present)
CurrencyPosFormat=0 Currency positive format: €1,1
CurrencyNegFormat=1 Currency negative format: -€1,1
CurrencyDigits=2 Number of Decimal digits
CurrencyThousandSymbol=. Thousands separator
CurrencyDecimalSymbol=, Decimal separator
Col1=ID Long |-- Columns definition
Col2=Description Text WIDTH 50 |
Col3=Quantity Integer |
Col4=FloatValue Double |
Col5=Price Currency |
[otherFilename.csv]
ColNameHeader=True
MaxScanRows=25 | Auto-detect the data type, using 25 rows as sample
CharacterSet=ANSI
Format=Delimited() | Standard delimiter: (,)
无论如何,我建议以CsvHelper 的形式获取库