我使用此代码在我的表格中填充我的gridview中的值:
Table table = new Table();
// get gridlines from gridview
table.GridLines = GridView1.GridLines;
if (GridView1.HeaderRow != null)
{
table.Rows.Add(GridView1.HeaderRow);
}
foreach (GridViewRow row in GridView1.Rows)
{
table.Rows.Add(row);
}
if (GridView1.FooterRow != null)
{
table.Rows.Add(GridView1.FooterRow);
}
我需要的是将包含gridview值的表格中的每个数据读入Excel工作表单元格。 我怎样才能做到这一点?
PS:这是我在C#中代码隐藏的工作表obj。
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
或者是否还有其他方法可以将GridView中的数据添加到其他内容中,使用表格可以轻松读取?
答案 0 :(得分:0)
public void ExportToExcel()
{
var Excel = new Microsoft.Office.Interop.Excel.Application();
XlReferenceStyle RefStyle = Excel.ReferenceStyle;
Excel.Visible = true;
Workbook wb = null;
string path = "yourpath";
try
{
wb = Excel.Workbooks.Add(path);
}
catch (System.Exception ex)
{
throw new Exception(ex.Message);
}
Worksheet ws = wb.Worksheets.get_Item(1) as Worksheet ;
for (int j = 0; j < GridView1.Columns.Count; ++j)
{
(ws.Cells[1, j + 1] as Range).Value2 = GridView1.Columns[j].HeaderText;
for (int i = 0; i < GridView1.Rows.Count; ++i)
{
object Val = GridView1.Rows[i].Cells[j].Value;
if (Val != null)
(ws.Cells[i + 2, j + 1] as Range).Value2 = Val.ToString();
}
}
Excel.ReferenceStyle = RefStyle;
Marshal.ReleaseComObject((object)Excel);
GC.GetTotalMemory(true);
}
是的,根据你要做的事情,有很多方法。在您的情况下,最简单的是CSV文件(这将与Excel合作优秀)。如果您有DataSource
,则无需使用DataGridView进行某些操作