Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 默认情况下,如何生成类型为“Text”而不是“General”的Excel文件_C#_Asp.net_Excel_Gridview - Fatal编程技术网

C# 默认情况下,如何生成类型为“Text”而不是“General”的Excel文件

C# 默认情况下,如何生成类型为“Text”而不是“General”的Excel文件,c#,asp.net,excel,gridview,C#,Asp.net,Excel,Gridview,我正在从事c项目,从gridview生成动态excel文件 当我成功生成文件时,它正在将所有数据转换为一般类型,但我需要将所有excel文件数据转换为文本格式 我该怎么做?因为我需要将此文件进一步用于报告目的,并且需要文本作为类型 以下是我的excel文件生成c代码: private void ExportGridView() { System.IO.StringWriter sw = new System.IO.StringWriter();

我正在从事c项目,从gridview生成动态excel文件

当我成功生成文件时,它正在将所有数据转换为一般类型,但我需要将所有excel文件数据转换为文本格式

我该怎么做?因为我需要将此文件进一步用于报告目的,并且需要文本作为类型

以下是我的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,我可以指定要在文本中生成的类型

我还搜索了一下,我们可以将它生成为类似html的内容,并使其成为excel之类的东西


有人能帮我吗?

只是一个猜测,但这是因为您正在编写gridview html?您可以创建一个CSV文件并用.xls保存它,它将成为一个excel文档

只是一个猜测,但这是因为您正在编写gridview html?您只需创建一个CSV文件并用.xls保存,它将成为excel文档

您可以使用Microsoft.Office.Interop.excel。添加对它的引用,并在其他using语句旁边添加以下using语句

using Microsoft.Office.Interop.Excel;
修改ExportGridView方法:

添加以下方法:

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();
}
您可以使用Microsoft.Office.Interop.Excel。添加对它的引用,并在其他using语句旁边添加以下using语句

using Microsoft.Office.Interop.Excel;
修改ExportGridView方法:

添加以下方法:

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();
}

我想我需要使用Microsoft.Office.Interop.Excel,并且我可以指定要在文本中生成的类型。有人能帮我吗?请注意,在某些版本的Excel中打开文件时,只要将文件扩展名从CSV更改为XLS,就会生成警告,指出该文件的类型有误。这不是一个很好的表演,但仍然不是很好。@AlexPaven啊,我以前没有遇到过,但很高兴知道。谢谢我想我需要使用Microsoft.Office.Interop.Excel,并且我可以指定要在文本中生成的类型。有人能帮我吗?请注意,在某些版本的Excel中打开文件时,只要将文件扩展名从CSV更改为XLS,就会生成警告,指出该文件的类型有误。这不是一个很好的表演,但仍然不是很好。@AlexPaven啊,我以前没有遇到过,但很高兴知道。谢谢如果要使用Microsoft.Office.Interop.Excel,则需要在计算机上安装MS Office。可以吗?可以,对我来说没问题,有人能帮我吗?如果您想使用Microsoft.Office.Interop.Excel,您需要在计算机上安装MS Office。可以吗?是的,对我来说很好,有人能帮我吗?但是为什么它也会生成一些.css、.xml、.htm文件呢?我不需要这些,我如何防止生成这些文件呢?但为什么它也会生成一些.css、.xml、.htm文件呢?我不需要这些,我如何防止生成这些?