Member 13711215 Ответов: 2

Конвертировать CSV в XLSX файл


Привет,

Есть ли у кого-нибудь функциональный код для преобразования между этими форматами?

спасибо.

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

Я попытался создать код в соответствии с этим кодом ниже, но у меня есть проблема с определением документа excel.



Private Shared Sub Main()
    Console.WriteLine("Tutorial 39" & vbLf & "-----------" & vbLf)
    Dim workbook As ExcelDocument = New ExcelDocument()
    Console.WriteLine("Reading file C:\Samples\Tutorial30.csv")

    If workbook.easy_LoadCSVFile("C:\Samples\Tutorial30.csv") Then
        workbook.easy_getSheetAt(0).setSheetName("First tab")
        workbook.easy_addWorksheet("Second tab")
        Dim xlsTable As ExcelTable = (CType(workbook.easy_getSheetAt(1), ExcelWorksheet)).easy_getExcelTable()
        xlsTable.easy_getCell("A1").setValue("Data added by Tutorial39")

        For column As Integer = 0 To 5 - 1
            xlsTable.easy_getCell(1, column).setValue("Data " & (column + 1))
        Next

        Console.WriteLine(vbLf & "Writing file C:\Samples\Tutorial39.xls.")
        workbook.easy_WriteXLSFile("C:\Samples\Tutorial39.xls")
        Dim sError As String = workbook.easy_getError()

        If sError.Equals("") Then
            Console.Write(vbLf & "File successfully created.")
        Else
            Console.Write(vbLf & "Error encountered: " & sError)
        End If
    Else
        Console.WriteLine(vbLf & "Error reading file C:\Samples\Tutorial30.csv " & vbLf & workbook.easy_getError())
    End If

    Console.WriteLine(vbLf & "Press Enter to exit ...")
    workbook.Dispose()
    Console.ReadLine()
End Sub

Richard MacCutchan

Какая у вас проблема?

Member 13711215

первая проблема-это мой язык. Я из Чехии, и мы используем специальный символ, например, Ž,Š,Č. Экспорт из DataGrid в файл CSV выглядеть, например, Životná экспортируется как Životná. Не могли бы вы помочь мне с этой проблемой? Файл.WriteAllBytes(путь к файлу, кодировка.Юникод.Метод getbytes(СБ.Метод toString)).
Главная проблема заключается в том, что я не знаю, как конвертировать csv в xls.
Как мне правильно начать перевод, включая этих персонажей?

Richard MacCutchan

Нет, живот-на экспортируется как живот-на. Именно когда вы пытаетесь отобразить его, он отображается как Životnà ¡, потому что любое приложение, отображающее его, не знает, что оно должно использовать чешский набор символов.

2 Ответов

Рейтинг:
1

Gerry Schmitz

Excel может открывать (допустимые) CSV-файлы; вам не нужно "конвертировать"их.

.net - открыть CSV-файл в Excel с помощью C#? - переполнение стека[^]


Рейтинг:
1

Member 13711215

 Private Sub konverze(sender As Object, e As EventArgs) Handles konvertovat_btn.Click
        Dim datestart As Date = Date.Now
        Dim dateEnd As Date = Date.Now
        Dim msExcelApplication As New Microsoft.Office.Interop.Excel.Application()
        Dim xlApp As New Excel.Application
        Dim path As String = "M:\Úsek financí\power BI\Helios Evidence vyrobnich operaci\říjen2018.xlsx"
        Dim xlWorkbook As Excel.Workbook = xlApp.Workbooks.Add()

        Dim xlWorksheet As Excel.Worksheet = CType(xlWorkbook.Sheets("List1"), Excel.Worksheet)
        xlWorksheet.Cells(1, 1) = ""
        If File.Exists("M:\Úsek financí\power BI\Helios Evidence vyrobnich operaci\říjen2018.xlsx") Then
        Else
            xlWorksheet.SaveAs(path)
            xlWorkbook.Close()
            xlApp.Quit()

        End If
        Dim workBook As Microsoft.Office.Interop.Excel.Workbook = msExcelApplication.Workbooks.Open("M:\Úsek financí\power BI\Helios Evidence vyrobnich operaci\říjen2018.xlsx", 0, False, Type.Missing, "", "", True, Type.Missing, Type.Missing, True, False, Type.Missing, True, False, False)
        'workBook.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingOEMNordic
        Try
            Dim workSheet As Microsoft.Office.Interop.Excel.Worksheet = workBook.Sheets(1)
            With workSheet.QueryTables.Add(Connection:="TEXT;M:\Úsek financí\říjen2018.csv", Destination:=workSheet.Range("$A$1"))
                .Name = "říjen2018"
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .SavePassword = False
                .RefreshStyle = Microsoft.Office.Interop.Excel.XlCellInsertionMode.xlInsertDeleteCells
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .TextFilePromptOnRefresh = False
                '.TextFilePlatform = 1250
                .TextFileStartRow = 1
                .TextFileParseType = Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited
                .TextFileTextQualifier = Microsoft.Office.Interop.Excel.XlTextQualifier.xlTextQualifierDoubleQuote
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = False
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = True
                .TextFileSpaceDelimiter = False
                .TextFileTrailingMinusNumbers = True
                .Refresh(BackgroundQuery:=False)
            End With
        Catch ex As Exception
            Console.WriteLine(ex.ToString())
            Console.ReadLine()
        Finally
            'workBook.SaveAs(Name)
            workBook.Close(True)
            msExcelApplication.Quit()
            Marshal.ReleaseComObject(xlWorksheet)
            Marshal.ReleaseComObject(xlWorkbook)
            Marshal.ReleaseComObject(workBook)
            Marshal.ReleaseComObject(xlApp)
end sub