Помогите пожалуйста, как решить проблему экспорта. У меня есть определенное количество столбцов в listView их может быть меньше или больше и их название тоже может быть изменено. Так я нашел пример но он работает только если вписать название столбца которого нужно экспортировать . ws.Cells[1, 1] = ""; ws.Cells[1, 2] = ""; --> это два пустых столбца, как их заполнить имя автоматически
private void excell_Click(object sender, EventArgs e)
{
using(SaveFileDialog sfd=new SaveFileDialog() { Filter="Excel mon|*.xls", ValidateNames = true })
{
if (sfd.ShowDialog() == DialogResult.OK)
{
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = app.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)app.ActiveSheet;
app.Visible = false;
ws.Cells[1, 1] = "";
ws.Cells[1, 2] = "";
int i = 2;
foreach(ListViewItem item in listView1.Items)
{
ws.Cells[i, 1] = item.SubItems[0].Text;
ws.Cells[i, 2] = item.SubItems[1].Text;
i++;
}
wb.SaveAs(sfd.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
app.Quit();
MessageBox.Show("Ваши данные успешно сохранены.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
Код решения с ошибкой Нет выравнивания текста вообще Итого как должно быть после выравнивания текста слева на право
если использовать ту библиотеку на которую я сослался (дубликат вопроса)
то код будет следующим:
private void excell_Click(object sender, EventArgs e)
{
using(SaveFileDialog sfd=new SaveFileDialog() { Filter="Excel mon|*.xlsx", ValidateNames = true })
{
if (sfd.ShowDialog() == DialogResult.OK)
{
SaveExel(sfd.FileName);
MessageBox.Show("Ваши данные успешно сохранены.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
public void SaveExel(string filepath)
{
Excel xl = new Excel(); //создаем инстанс
foreach(ListViewItem item in listView1.Items)
{
var arr = item.SubItems.OfType<ListViewItem.ListViewSubItem>().Select(x => x.Text).ToArray();
xl.AddRow(arr);
}
xl.FileSave(filepath);
}
код не проверял, могут быть некоторые ошибки в строке со звездочками
даный код не требует для работы установленного экселя а так же работает значительно быстрее. И не оставляет висящих инстансов экселя в бекграунде, как делает, скорее всего, твой код. (проверь таскменеджером и поубивай или перезапусти комп)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я пишу змейку на формах и у меня возникла проблема: если на форме есть активные кнопки, змейка больше не реагирует на нажатие клавиш (LEFT, DOWN, RIGHT,...
проблема в том что AllNodes не получает никакого значения, возможно неправильно указан xPath? или
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском