Я экспортирование Excel.Worksheet в C# как это:Сохранить Лист Excel в CSV с нулевым и точкой с запятой в качестве разделителя
myWorksheet.SaveAs(myPath, Excel.XlFileFormat.xlCSV);
это работает почти нормально, но мне нужно, чтобы заставить две вещи:
- «Полевой разделитель» должен быть точкой с запятой (;). Я получаю запятую (,)
- «Текстовый разделитель» всегда должен быть нулевым. Я получаю двойные кавычки («»)
The documentation совершенно бесполезно (что ад «xlTextWindows:. Определяет тип формата текста» должен означать?)
Любая идея?
Вы получаете запятую для своего разделителя полей, потому что это то, что означает «c» в CSV. Хотя я не знаком с длинным списком встроенных форматов Excel, я думаю, что, скорее всего, вы не найдете что-то, что точно соответствует вашим потребностям. Если это одноразовая операция, было бы довольно просто выполнить глобальный поиск и замену для выполнения этой задачи. Это что-то, что вам нужно будет делать многократно? Вы отметили это с помощью C# - вас интересует какой-то код на C# для выполнения последующей обработки и замены? – kmote
'xlTextWindows' является одним из нескольких констант, которые определяют символ или символы новой строки. Windows использовала CR LF. В Excel, Save Workbook, поскольку CSV не помещает двойные кавычки вокруг текстового поля, если в нем нет запятой. Или C# отличается или у вас есть запятые в ваших полях. Я понимаю, что Excel будет использовать точку с запятой в качестве разделителя CSV, если десятичный разделитель указан как запятая. Обычно это национальный параметр, но C# имеет функциональность, позволяющую использовать временные национальные настройки, которые могут стоить попробовать. –