簡體   English   中英

使用 GemBox 將數據從 DataGridView 導入現有 Excel 文件

[英]Importing data from DataGridView to existing Excel file using GemBox

我對編程和 GemBox 還很陌生。 我發現這段代碼將數據從 DataGridView 插入到帶有頁眉和頁腳的現有 Excel 工作表中。 代碼發生的情況是它完全替換了現有的 excel 文件並刪除了所有頁眉和頁腳。 我想要做的只是從單元格 A:9 開始插入數據,而不從其他 excel 單元格中刪除預先存在的數據。 反正有沒有使用 GemBox 來做到這一點?

private void replace_Click(object sender, EventArgs e)
        {
            var saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "XLSX files (*.xlsx)|*.xlsx";
            saveFileDialog.FilterIndex = 3;

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                var workbook = new ExcelFile();
                var worksheet = workbook.Worksheets.Add("Sheet1");

                var options = new ImportFromDataGridViewOptions();
                options.ColumnHeaders = false;
                options.StartRow = 8;       
                options.StartColumn = 0;

                DataGridViewConverter.ImportFromDataGridView(worksheet, this.dataGridView1, options);

                workbook.Save(saveFileDialog.FileName);
            }
        }

任何幫助將不勝感激。

使用它將數據從DataGridView導入現有的 Excel 表:

private void replace_Click(object sender, EventArgs e)
{
    var saveFileDialog = new SaveFileDialog();
    saveFileDialog.Filter = "XLSX files (*.xlsx)|*.xlsx";

    if (saveFileDialog.ShowDialog() == DialogResult.OK)
    {
        var workbook = ExcelFile.Load("Path to your existing Excel file.");
        var worksheet = workbook.Worksheets.ActiveWorksheet;
        var options = new ImportFromDataGridViewOptions("A9");

        DataGridViewConverter.ImportFromDataGridView(worksheet, this.dataGridView1, options);
        workbook.Save(saveFileDialog.FileName);
    }
}

請注意,這將從單元格 A9 開始導入數據,並替換導入完成范圍內的任何現有數據。

換句話說,如果您有一個 Excel 文件,該文件已經在單元格 A9、B9 等中包含一些數據,那么它們最終將被覆蓋。

如果您不希望這樣,則插入空行以為DataGridView數據騰出空間,如下所示:

worksheet.Rows.InsertEmpty(8, this.dataGridView1.Rows.Count);

var options = new ImportFromDataGridViewOptions("A9");
DataGridViewConverter.ImportFromDataGridView(worksheet, this.dataGridView1, options);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM