C# 将.NET数据表导出到Microsoft Excel并格式化结果
我想通过将数据报告到Excel来设置行高。我尝试了以下操作,但出现调试错误 无法将“System.Web.UI.WebControl.DataGridItem”的对象类型强制转换为类型 'System.Web.UI.WebControl.GridViewRow' 这是我的语法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
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;
}