我正在研究c#项目,我正在从gridview生成动态excel文件。
当我成功生成文件时,它会将所有数据转换为Genaral
类型,但我需要将所有excel文件数据转换为Text
格式,
我该怎么做?因为我需要进一步使用此文件用于报告目的,并且需要Text
作为类型
以下是我的excel文件生成c#代码:
private void ExportGridView()
{
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
// Render grid view control.
gvFiles.RenderControl(htw);
// Write the rendered content to a file.
string renderedGridView = sw.ToString();
File.WriteAllText(@"C:\test\ExportedFile.xls", renderedGridView);
}
我想我需要使用Microsoft.Office.Interop.Excel
我可以指定类型也想生成Text
我也搜索过,就像我们可以像html一样生成它并使它像那样出类拔萃。
任何人都可以帮助我吗?
答案 0 :(得分:4)
您可以使用Microsoft.Office.Interop.Excel
。添加对它的引用,并使用其他语句添加以下using
语句。
using Microsoft.Office.Interop.Excel;
修改ExportGridView
方法:
private void ExportGridView()
{
var path = @"C:\test\ExportedFile.xls";
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
// Render grid view control.
gvFiles.RenderControl(htw);
// Write the rendered content to a file.
string renderedGridView = sw.ToString();
File.WriteAllText(path, renderedGridView);
UpdateFormat(path);
}
添加以下方法:
private void UpdateFormat(string path)
{
var application = new Microsoft.Office.Interop.Excel.Application();
var doc = application.Workbooks.Open(path);
for (int i = 1; i <= doc.Worksheets.Count; i++)
{
Worksheet sheet = doc.Worksheets[i];
for (int j = 1; j <= sheet.Columns.Count; j++)
{
Range column = sheet.Columns[j];
column.NumberFormat = "@";
}
}
doc.Save();
doc.Close();
application.Quit();
}
答案 1 :(得分:0)
只是一个猜测,但它是因为你正在编写gridview html?你可以创建一个CSV文件并用.xls保存它,它将是一个excel文档