C# 将.NET数据表导出到Microsoft Excel并格式化结果

C# 将.NET数据表导出到Microsoft Excel并格式化结果,c#,asp.net,.net,excel,datatable,C#,Asp.net,.net,Excel,Datatable,我想通过将数据报告到Excel来设置行高。我尝试了以下操作,但出现调试错误 无法将“System.Web.UI.WebControl.DataGridItem”的对象类型强制转换为类型 'System.Web.UI.WebControl.GridViewRow' 这是我的语法 public void ExportToExcel(DataTable dataTable) { string filename = "Bamo.xls"; StringWriter tw = new System

我想通过将数据报告到Excel来设置行高。我尝试了以下操作,但出现调试错误

无法将“System.Web.UI.WebControl.DataGridItem”的对象类型强制转换为类型 'System.Web.UI.WebControl.GridViewRow'

这是我的语法

public void ExportToExcel(DataTable dataTable)
{
  string filename = "Bamo.xls";
  StringWriter tw = new System.IO.StringWriter();
  HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
  DataGrid dgGrid = new DataGrid();
  dgGrid.DataSource = dataTable;
  dgGrid.DataBind();
  int j = 0;
  foreach(GridViewRow gvrow in dgGrid.Items)
  {
    if (j % 2 != 0)
    {
        for (int k = 0; k < gvrow.Cells.Count; k++)
        {
            gvrow.Cells[k].Style.Add("Height", "10");
        }
    }
    j++;
  }
}
public void ExportToExcel(数据表)
{
字符串filename=“Bamo.xls”;
StringWriter tw=new System.IO.StringWriter();
HtmlTextWriter hw=新系统.Web.UI.HtmlTextWriter(tw);
DataGrid dgGrid=新DataGrid();
dgGrid.DataSource=数据表;
dgGrid.DataBind();
int j=0;
foreach(dgGrid.Items中的GridViewRow gvrow)
{
如果(j%2!=0)
{
对于(int k=0;k
下面的代码片段演示了.NET
数据表
导出到MS Excel工作表以及与各种数据类型(用C#编码)相关的格式化技术:

public bool Export2Excel(数据表)
{
对象错误值=System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application _appExcel=null;
Microsoft.Office.Interop.Excel.Workbook\u excelWorkbook=null;
Microsoft.Office.Interop.Excel.Worksheet\u excelWorksheet=null;
尝试
{

if(dataTable.Rows.Count我使用了您的代码一段时间,但为字符串添加了额外的格式:

    case "System.String":
    {
        // format as text
        _excelWorkSheet.Columns["A"].Offset[misValue, i].EntireColumn.NumberFormat = "@";
        break;
    }

这解决了在导出到excel并具有相等(=)符号时出现的问题(HRESULT异常:0x800A03EC错误)在任何字符串的开头。Excel将其识别为调用或公式的开头,因此它会尝试解决一些可能不存在或无法解决的问题。

这是否要求在下载用户的PC上安装Excel?是否需要特定版本的Excel?是否需要安装Excel app,版本可以是任何XP+。以下是使用此DataTable导出到MS Excel过程的实际应用程序的链接(指向可下载的试用WPF应用程序的链接:)。
    case "System.String":
    {
        // format as text
        _excelWorkSheet.Columns["A"].Offset[misValue, i].EntireColumn.NumberFormat = "@";
        break;
    }