Na wstępie powiem, że to moje początki z C#.
Mam następujący problem, korzystam z kontrolek z pakietu DevExpress. Poniżej kod metody:
public void ZapiszDaneDoExcela()
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "* .xls | * .xls";
dlg.FileName = "Test" + DateTime.Now.ToString("_yyyyMMdd_HHmmss");
if (dlg.ShowDialog() == DialogResult.OK)
{
myGridView1.ExportToXls(dlg.FileName);
//SprawdzCzyPlikZostalZapisany(dlg.FileName, "Excel");
Process.Start(dlg.FileName); //otwieranie pliku excela automatycznie po zapisie
}
}
Metoda ZapiszDaneDoExcela() znajduje się w klasie z okienkiem Form1. W okienku Form1 jest GridControl z listą danych (myGridView1). Dodałem do tego okienka przycisk w celu testowania prawidłowości działania tej metody i jest wszystko ok, dane ładnie sie eksportują do Excela.
Chciałbym jednak ten eksport przy pomocy tej metody zrobić w inny sposób, tzn. w okienku Form1 mam przycisk "OPCJE". Po jego naciśnięciu otwiera się nowe okienko Form2 z listą opcji. Na tej liście mam pozycję "EXPORT DO EXCELA". Chciałbym, aby po wybraniu tej pozycji metoda z Form1 o nazwie ZapiszDaneDoExcela() robiła ten export. Poniżej mam kod umiejscowiony w Form2 w ramach testów:
private void btnWykonaj_Click(object sender, EventArgs e)
{
if(ListBoxControl1.SelectedIndex == 0)
{
Form1 excel = new Form1("");
excel.myGridView1.GetSelectedRows();
int selectedRowCount = excel.myGridView1.SelectedRowsCount; // dla sprawdzenia ilości wierszy exportowanych
XtraMessageBox.Show(selectedRowCount.ToString(), "Błąd zapisu", MessageBoxButtons.OK, MessageBoxIcon.Error);
excel.ZapiszDaneDoExcela();
}
}
Okienko komunikatu XtraMessageBox pokazuje, że w myGridView1 jest zaznaczone 0 wierszy i metoda excel.ZapiszDaneDoExcela() eksportuje jedynie same nagłówki kolumn do pliku Excela.
Pomoże mi ktoś rozwiązać ten problem ???