Conversion de fichier XLSX à l’aide d’un fichier CSV

J’ai besoin de convertir un fichier XLSX en un autre fichier CSV. J’ai fait beaucoup de recherches sur la façon de procéder, mais je n’ai rien trouvé qui me convienne. J’ai trouvé ce GithubGist uniquement Convertir un Epplus ExcelPackage en fichier CSV

Cela retourne un Arrey de binary. Mais apparemment ça ne marche plus.

J’essaie de charger Arrey en utilisant LoadFromCollection

FileInfo novoArquivoCSV = new FileInfo(fbd.SelectedPath); var fileInfoCSV = new FileInfo(novoArquivo + "\\" + nameFile.ToSsortingng() + ".csv"); using (var csv = new ExcelPackage(fileInfoCSV)) { csv.Workbook.Worksheets.Add(nameFile.ToSsortingng()); var worksheetCSV = csv.Workbook.Worksheets[1]; worksheetCSV.Cells.LoadFromCollection(xlsx.ConvertToCsv()); } 

    Le code auquel vous êtes lié lit une feuille XLSX et renvoie les données CSV sous forme de tampon d’octets via un stream de mémoire.

    Vous pouvez écrire directement dans un fichier si vous supprimez le stream de mémoire et transmettez le chemin d’access au fichier cible dans ConvertToCsv:

     public static void ConvertToCsv(this ExcelPackage package, ssortingng targetFile) { var worksheet = package.Workbook.Worksheets[1]; var maxColumnNumber = worksheet.Dimension.End.Column; var currentRow = new List(maxColumnNumber); var totalRowCount = worksheet.Dimension.End.Row; var currentRowNum = 1; //No need for a memory buffer, writing directly to a file //var memory = new MemoryStream(); using (var writer = new StreamWriter(targetFile,false, Encoding.UTF8)) { //the rest of the code remains the same } // No buffer returned //return memory.ToArray(); } 

    Encoding.UTF8 garantit que le fichier sera écrit au format UTF8 avec une marque d’ordre d’octet permettant à tous les programmes de comprendre qu’il s’agit d’un fichier UTF8 au lieu d’un fichier ASCII. Sinon, un programme pourrait lire le fichier en tant qu’ASCII et étrangler le premier caractère non-ASCII rencontré.

    Extraire la méthode .SaveAs () dans l’object Excel.

     wbWorkbook.SaveAs("c:\yourdesiredFilename.csv", Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV) 

    Ou suivant:

     public static void SaveAs() { Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.ApplicationClass(); Microsoft.Office.Interop.Excel.Workbook wbWorkbook = app.Workbooks.Add(Type.Missing); Microsoft.Office.Interop.Excel.Sheets wsSheet = wbWorkbook.Worksheets; Microsoft.Office.Interop.Excel.Worksheet CurSheet = (Microsoft.Office.Interop.Excel.Worksheet)wsSheet[1]; Microsoft.Office.Interop.Excel.Range thisCell = (Microsoft.Office.Interop.Excel.Range)CurSheet.Cells[1, 1]; thisCell.Value2 = "This is a test."; wbWorkbook.SaveAs(@"c:\one.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); wbWorkbook.SaveAs(@"c:\two.csv", Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); wbWorkbook.Close(false, "", true); } 

    Existe-t-il un moyen simple de convertir un fichier .xls en fichier .csv? (Exceller)

    Il existe plusieurs autres ressources en ligne qui peuvent vous aider à résoudre ce problème. En fait, pour quelque chose de générique comme celui-ci, vous devriez toujours rechercher une solution sur Google et essayer de le résoudre vous-même. C’est la meilleure façon d’apprendre à faire des choses techniques. Si vous êtes bloqué (e) ou si vous avez une question très précise, ce site est un endroit formidable pour poser votre question. Il me semble que vous avez probablement commencé ici et que vous n’avez effectué aucun travail préliminaire vous-même.