gpt4 book ai didi

c# - 大datagridview导出到excel

转载 作者:行者123 更新时间:2023-12-04 21:41:17 26 4
gpt4 key购买 nike

我试图在 Winforms 应用程序中使用 C# 中的 Visual Studio 2010 将 datagridview 导出到 excel(.xls),问题是它需要永远保存,到目前为止我有 4220 行和 20 列。有没有更快的方法来做到这一点。注意:我正在从保存的 excel 文件中填充 datagridview。感谢您的帮助....我的保存代码如下:

private void btnSave_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

// Get the Header from dataGridView
for (int h = 1; h < dataGridView1.Columns.Count + 1; h++)
{
xlWorkSheet.Cells[1, h] = dataGridView1.Columns[h - 1].HeaderText;
}

// Get the Cell Values
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
DataGridViewCell cell = dataGridView1[j, i];
xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
}
}

//xlWorkBook.SaveCopyAs("\\FORM TEST.xlsx");
xlWorkBook.SaveAs("\\GB STOCK.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();

xlApp = null;
xlWorkBook = null;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}

最佳答案

在阅读了各种搜索并通过上面的答案后,我遇到了这段代码,与我的原始代码相比,它的运行速度非常快(几乎是瞬时的),它只花了不到 2 分钟。我非常感谢您在上面的回答,我将研究这些,尤其是复制和粘贴方法,这是一个有趣的阅读。我对此(新爱好)相对较新,并且才刚刚开始了解有关导出数据集等的一些概念。
我知道这绝不是实现我的目标的最佳方式,但它可以满足我目前的需求。再次感谢所有帮助过的人,我学到了很多。

            int cols;
//open file
StreamWriter wr = new StreamWriter("GB STOCK.csv", false, Encoding.UTF8);

//determine the number of columns and write columns to file
cols = dgvStock.Columns.Count;
for (int i = 0; i < cols; i++)
{
wr.Write(dgvStock.Columns[i].Name.ToString().ToUpper() + ",");
}
wr.WriteLine();

//write rows to excel file
for (int i = 0; i < (dgvStock.Rows.Count); i++)
{
for (int j = 0; j < cols; j++)
{
if (dgvStock.Rows[i].Cells[j].Value != null)
{
wr.Write(dgvStock.Rows[i].Cells[j].Value + ",");
}
else
{
wr.Write(",");
}
}

wr.WriteLine();
}
//close file
wr.Close();

关于c# - 大datagridview导出到excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com