Swe*_*ety 6 c# excel datagridview export
在我的应用程序中,我将DataGridView数据导出到Excel工作表现在我想将组合框和文本框选择的值传递给excel工作表,我必须将我的Excel工作表的标题作为我的Windows应用程序的报告,我该怎么做?
谁可以帮我这个事?
我有将datagridview数据导出到excel的代码:
private void btnexcel_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= dataGridView1.RowCount - 1; i++)
{
for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
{
DataGridViewCell cell = dataGridView1[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs("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);
MessageBox.Show("Excel file created , you can find the file c:\\csharp.net-informations.xls");
}
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();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在获取DataGridView
单元格信息的代码中,Value 属性为您提供组合框单元格的 ValueMember,而不是组合框中的 DisplayMember。相反,您需要访问 FormattedValue (您实际上可以将其用于所有单元格)。
下面是一些代码,展示了如何执行此操作(以及其他一些小的改进):
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if (!dataGridView1.Rows[i].IsNewRow)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
DataGridViewCell cell = dataGridView1[j, i];
MessageBox.Show(cell.FormattedValue.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
在那里,我只是获取 FormattedValue 并将其显示在 MessageBox 中,但对于您来说,您可以简单地将其分配给您的单元格。
我还对循环使用了稍微更紧凑的语法,并添加了对网格 NewRow 的检查(其中可能包含可能会破坏内容的空值)。
另外,需要知道的一件有用的事情是,一旦获得单元格,您就可以获得单元格的实际类型,如下所示:
if (cell is DataGridViewComboBoxCell)
Run Code Online (Sandbox Code Playgroud)
这为您在解决问题时提供了更多选择。作为最后一个选项,您甚至可以访问 EditingControl(ComboBoxColumn 中的实际 DropDown),这又提供了更多选项。
在您的情况下,您不需要这个,但了解它们很有用。
归档时间: |
|
查看次数: |
8741 次 |
最近记录: |