User1454 Ответов: 4

Как открыть CSV-файл, разделенный символом '\t' программно в приложении C# windows


Привет,
У меня есть CSV-файл, в котором столбцы разделены символом "\t". Мне нужно открыть файл программно с правильным разделением столбцов. Пожалуйста, помогите мне просмотреть файл в приложении windows во время выполнения. Попробовал следующий код, но у меня ничего не вышло. Он все еще не в нужном формате.

Заранее спасибо.

Что я уже пробовал:

Excel.Application xlApp;
              object misValue = System.Reflection.Missing.Value;
              xlApp = new Excel.Application();
              xlApp.Workbooks.OpenText(@"c:\polsamples\POLList_201633.csv", Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited);
              xlApp.Visible = true;

Suvendu Shekhar Giri

"не в требуемом формате"
в каком формате?

User1454

Например: это необходимый формат
Студенческий Знаки
1 Джейк 99
2 лука 98

Но теперь это рассматривается как :
IdStudentMarks
1Jake99
2Luke98

Столбцы не разделяются символом '\t', если это не сделано вручную (open excel - & gt; DATA - & gt;From Text - & gt;Finish)

Sinisa Hajnal

Проверьте свойства используемого вами объекта взаимодействия. Должен быть один определяющий разделитель.

F-ES Sitecore

Метод OpenText принимает параметр "Tab", который позволяет вам сказать, что он разделен табуляцией. https://msdn.microsoft.com/en-us/library/office/ff837097.aspx

User1454

Попробовал и это, но ничего не вышло :(
var ExcelApp = новый Excel.Приложение();
ExcelApp.Книги.OpenText( path, Tab: true);
ExcelApp.Видимое = истинное;

4 Ответов

Рейтинг:
2

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Я думаю, что вы используете Interop. Избегайте этого.

Вы можете написать свою собственную логику, используя проекты с открытым исходным кодом, упомянутые здесь - C# преобразование csv в xls (с использованием существующего csv-файла)[^]


Рейтинг:
2

#realJSOP

Недавно я опубликовал статью для парсера CSV-файлов. Прямо сейчас он использует только запятую в качестве разделителя, но это было бы незначительным упражнением, чтобы сделать разделитель настраиваемым.

Парсер CSV файлов[^]


Рейтинг:
2

Patrice T

Excel знает, как открывать такие файлы.
Используя функцию записи макросов, вы можете записывать шаги для открытия файла, а когда запись будет завершена, вы сможете увидеть, что сделал excel для открытия.
Он не должен быть слишком сложным для перевода в вашем коде.


User1454

На самом деле мне нужно открыть CSV-файл в excel из приложения windows.
Например: использование ' Process.Start (filename. csv); ' он должен быть открыт,но так как это \t разделено, как только он открыт из приложения, он отображается как один текст в каждой строке, а не классифицируется по столбцам.

Рейтинг:
2

manu_dhobale

Просто преобразуйте свою вкладку в запятую

var path = @"c:\polsamples\POLList_201633.csv";
var lines = File.ReadAllLines(path);
var newLines = lines.Select(l => string.Join(",", l.Split('\t')));
File.WriteAllLines(path, newLines);


Microsoft.Office.Interop.Excel.Application xlApp;
object misValue = System.Reflection.Missing.Value;
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlApp.Workbooks.OpenText(path, Microsoft.Office.Interop.Excel.XlTextParsingType.xlFixedWidth);
xlApp.Visible = true;