C# 将Datagridview导出到现有Excel文件C
我的软件有问题。我想将Datagridview导出到现有excel文件。我的软件将excel文件导入到datagridview,现在我想对gridview进行更改,然后将其安全恢复。我已经尝试了很多选项,但我想将其添加到现有文件中,大多数教程都是关于如何将其导出到新文件中。有人能帮我解决这个问题吗?我还想到了将gridview导出到新的gridview,然后将新的gridview的工作表复制到现有的gridview中。但同样的问题,我什么也找不到。我对整个程序设计都很陌生,在我的公司里只是个学习者。如果有人能帮助我,那就太好了!如果我的英语不好,我住在德国。谢谢:这将保存到特定位置的特定Excel文件中C# 将Datagridview导出到现有Excel文件C,c#,excel,gridview,datagridview,export,C#,Excel,Gridview,Datagridview,Export,我的软件有问题。我想将Datagridview导出到现有excel文件。我的软件将excel文件导入到datagridview,现在我想对gridview进行更改,然后将其安全恢复。我已经尝试了很多选项,但我想将其添加到现有文件中,大多数教程都是关于如何将其导出到新文件中。有人能帮我解决这个问题吗?我还想到了将gridview导出到新的gridview,然后将新的gridview的工作表复制到现有的gridview中。但同样的问题,我什么也找不到。我对整个程序设计都很陌生,在我的公司里只是个学习
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True";
string sql = "SELECT * FROM Authors";
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
DataSet ds = new DataSet();
connection.Open();
dataadapter.Fill(ds, "Authors_table");
connection.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Authors_table";
}
private void button2_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
Int16 i, j;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
for (i = 0; i <= dataGridView1.RowCount - 2; i++)
{
for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
{
xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString();
}
}
xlWorkBook.SaveAs(@"c:\csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
}
}
请记住添加引用右键单击项目并选择“引用”,然后查找Microsoft Excel 15.0对象库
private void btnExport_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application xlworksheet =
new Microsoft.Office.Interop.Excel.Application();
xlworksheet.Application.Workbooks.Open(
@"C:\Users\BLANKSOASHEET.xlsx", Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
try
{
for(int i=1; i<DgvSOA.Columns.Count+1; i++)
{
worksheet.Cells[1,i] = datagridView1.Columns[i - 1].HeaderText;
}
for (int i = 0; i < datagridView1.Rows.Count; i++)
{
for (int j = 0; j < datagridView1.Columns.Count; j++)
{
xlworksheet.Cells[i + 13, j + 1] = datagridView1.Rows[i].Cells[j].Value.ToString();
}
}
}
}
如果您有读取excel文件并将数据导入DataGridView的代码,那么反向操作应该不难理解。您没有说明DataGridView是如何填充的,DataGridView数据绑定了吗?如何向DataGridView添加新项?是否要向现有工作簿中添加新工作表,或向已包含数据的现有工作表中添加数据?您是如何引用Excel、Interop、EPPlus或其他第三方库的?因此,这并不是您真正想要获得此类帮助的地方。尝试一些东西,如果它不能像预期的那样工作,请将您的代码发布在这里,其他人可以提供帮助。您可能希望查看以下有关提问的信息。