在 excel c# 中设置导入文本的格式

本文关键字:文本 格式 导入 设置 excel | 更新日期: 2023-09-27 18:31:37

大家好,我想为下一个寻求帮助。

我想使用 workbooks.opentext 方法将 txt 文件加载到 C# 中的 Excel 中! 它运行良好,但在文本数据中有一些数字包含","字符,这是整个文本的主要分隔符让我展示你

'1200000','29,8','DUPAREC PAPÍRGYŰJTŐ ÉS FELD. KFT','

问题出在第二列.

有没有人知道如何避免这个问题? 我的代码是下一个

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
int[,] fieldInfo = new int[4, 2] { { 1, 2 }, { 2, 4 }, { 3, 2 }, { 4, 2 } };
object oFieldInfo = fieldInfo;
xlApp = new Excel.Application();
object missing = System.Reflection.Missing.Value;
xlApp.Workbooks.OpenText(
    filepath,Excel.XlPlatform.xlWindows,
    1,
    Excel.XlTextParsingType.xlDelimited,
    Excel.XlTextQualifier.xlTextQualifierNone,
    false,
    false,
    false,
    true,
    false,
    false,
    missing,
    oFieldInfo,
    missing,
    missing, 
    missing, 
    missing, 
    missing 
        );

此致敬意!

史密斯!

在 excel c# 中设置导入文本的格式

由于限定文本的字符是'(单引号),因此您必须将Excel.XlTextQualifier.xlTextQualifierSingleQuote作为参数传递。

有关详细信息,请参阅 Excel 开发人员参考。

下面的代码应该使您的导入正常工作。

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
int[,] fieldInfo = new int[4, 2] { { 1, 2 }, { 2, 4 }, { 3, 2 }, { 4, 2 } };
object oFieldInfo = fieldInfo;
xlApp = new Excel.Application();
object missing = System.Reflection.Missing.Value;
xlApp.Workbooks.OpenText(
    filepath,Excel.XlPlatform.xlWindows,
    1,
    Excel.XlTextParsingType.xlDelimited,
    Excel.XlTextQualifier.xlTextQualifierSingleQuote,
    false,
    false,
    false,
    true,
    false,
    false,
    missing,
    oFieldInfo,
    missing,
    missing, 
    missing, 
    missing, 
    missing 
        );

因为您定义了第二列为字段中格式化的日期时间信息数组"29,8"将显示为 29。八月在Excel中。

您应该将 {...,{2,4},...} 替换为 {...,{2,1},...},以便 Excel 将数字解析为数字。