[英]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.