#excel #vb.net #streamwriter
#excel #vb.net #streamwriter
Вопрос:
Я пытаюсь экспортировать некоторые данные в файл Excel с помощью streamwriter. Я пытаюсь отредактировать то, что я использую для экспорта данных в .csv, но редактирую его таким образом. То, что я хочу экспортировать в файл .xls, — это Listbox1 в первом столбце и Listbox2 во втором.
Using writer = New StreamWriter(SaveFileDialog1.FileName)
For Each o As String In Form3.ListBox1.Items.Cast(Of Object).Zip(Form3.ListBox2.Items.Cast(Of Object), Function(x1, x2) x1 amp; " " amp; x2)
writer.WriteLine(o)
Next
End Using
Очевидно, что он экспортирует данные в одну и ту же ячейку, просто помещая пробел между двумя списками данных. Как я мог решить? Спасибо, все ответят мне. С наилучшими пожеланиями
Комментарии:
1. Вы не создаете файлы XLS с помощью a
StreamWriter
, который предназначен для обычного текста. Для работы с файлами Excel доступны некоторые сторонние библиотеки, но я не уверен, что вы найдете что-то бесплатное для записи файлов старого формата (XLS). Вообще говоря, вам понадобится установленный Excel и использовать Office Automation для сохранения в этом формате. Все остальное потребовало бы много работы. Если вы используете более новый формат (XLSX), то у вас есть еще много вариантов, и некоторые бесплатные тоже. Для этого вы можете использовать OpenXML, поэтому устанавливать Excel не нужно.2. На самом деле в форме, которую я разрабатываю, у меня есть кнопка для открытия данных в Excel (с помощью приложения Excel), но, поскольку это приложение будет использоваться разными пользователями (например, с помощью OpenOffice), OpenXML кажется лучшим выбором для этой цели. Я попробую и дам вам знать.
3. Обратите внимание, что вы можете использовать OpenXML непосредственно самостоятельно, но существуют также различные сторонние инструменты, часто доступные в виде пакетов NuGet, которые несколько упрощают его. Я сам никогда не использовал, но один пример — ClosedXML .