解析文件到DataTable

Parse file to DataTable

我必须将扩展名为 .xls 的文件解析为 DataTable 对象。似乎文件是文本 table,在 cp866 编码中具有固定的列长度,但我无法使用适当的连接字符串读取它。

我可以使用 MS Excel 成功打开此类文件,并且在打开时显示 正在打开 DBF 4。下面的例子是尝试读取简单文本这样的文件,您可能会注意到某些字符无法识别。

有人可以帮忙解决这个问题吗?

假设它是损坏的 dbf4 文件。您可以尝试使用 Microsoft.Office.Interop.Excel package:

阅读它
Application app = new Application { Visible = false };
Workbook wb = app.Workbooks.Open(fileFullName, UpdateLinks: 0, ReadOnly: true, CorruptLoad: 1);
Worksheet ws = wb.Worksheets.Item[1];
Range r = ws.UsedRange;

object[,] va = (object[,])r.Value2;
int rowLen = va.GetLength(0);
int colLen = va.GetLength(1);

StringBuilder sb = new StringBuilder();

for (int i = 1; i <= rowLen; i++)
{
    object[] row = new object[colLen];

    for (int j = 1; j <= colLen; j++)
    {
        row[j - 1] = va[i, j];
    }

    sb.AppendLine(string.Join(";", row));
}

string result = sb.ToString();

wb.Close(false, fileFullName, null);
Marshal.ReleaseComObject(wb);
app.Quit();