Visual Basi c. NET: открыть текстовый файл с разделителями табуляции в Excel - PullRequest
0 голосов
/ 05 февраля 2020

Я работаю над обновлением устаревшего приложения. Это приложение создает файл .txt с разделителями табуляции, а в последнем действии преобразует этот файл в файл .xlsx и сохраняет его. Этот код правильно открывается в Excel (данные разбиты на столбцы по разделителю табуляции) при сборке на VB6, но в Visual Basi c. NET похоже, что Excel по умолчанию использует запятую в качестве разделителя, то есть все данные находятся в первый столбец. Мне нужно переопределить этот атрибут, чтобы заставить его разделить с помощью vbTab. Как я могу выполнить sh это?

Образец текстового файла

Respondent Id   Starting Date   Starting Time   Completed Date  Completed Time
0000140 12/21/19    20:18:01    12/21/19    20:31:28
0000141 12/21/19    21:11:56    12/21/19    21:14:53
0000142 12/21/19    22:46:11    12/21/19    22:56:24
0000144 12/26/19    15:28:44    12/28/19    22:12:18
0000145 12/26/19    22:27:51    12/27/19    16:48:15
0000146 12/27/19    10:01:42    12/27/19    10:05:06
0000147 12/27/19    10:21:47    12/27/19    10:32:01
0000148 12/27/19    13:01:21    12/27/19    13:09:00
0000149 12/27/19    13:09:19    12/27/19    13:11:51

И мой код VB. NET. Там на самом деле не так много ...

' Create excel object
Dim oExcel = CreateObject("Excel.Application")

' Open the text file that was generated. Generated_Text_File is generated file that is tab delimited
Dim oBook = oExcel.Workbooks.Open(Generated_Text_File)

oBook.SaveAs(Excel_FilePath, FileFormat:=51)

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Это решение, которое я использовал в итоге.

Dim Filename = "C:\file\text.txt"

' Create the excel object
Dim oExcel = CreateObject("Excel.Application")

' Open the text file that was generated
oExcel.Workbooks.OpenText(FileName:=Text_FilePath, Origin:=65001)

' Name the worksheet
oExcel.Worksheets(1).Name = "Worksheet"

' Save as .XLSX
oExcel.Worksheets(1).SaveAs(Excel_FilePath, FileFormat:=51)

oExcel.Quit()
oExcel = Nothing
0 голосов
/ 05 февраля 2020

В workbooks.open есть опция «формат», позволяющая указать разделитель столбцов.

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.workbooks.open?view=excel-pia

...