在 C# 中创建 .csv 文件

2024-03-01

好吧,我想用 C# 创建一个 .csv 文件。我环顾四周,发现很多人都在使用 system.IO.memorystream 和 system.io.streamwriter。

问题是这样的:我有一个网络应用程序。我想让用户能够导出到 Excel。问题是,Excel 无法安装在服务器上(不要问)。我希望能够为报告编写 .csv 工作表导出。现在,所有报告的报告标题和数据都将有所不同(循环将解决此问题)。有人有例子或更好的资源供我参考吗?


这是我通常采取的方法。但可能不是最有效的。

        /// <summary>
    /// Generates the contents of the log file.
    /// </summary>
    /// <returns>The contents of the log file.</returns>
    internal string GenerateLogFile()
    {
        StringBuilder csvExport = new StringBuilder();
        csvExport.AppendLine(Resources.CSVHeader);

        foreach (DataRow row in this.logEntries.Rows)
        {
            csvExport.AppendLine(
                string.Format(
                "\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\",\"{8}\", \"{9}\"",
                row[ColumnNames.LogTime], row[ColumnNames.Field1], row[ColumnNames.Field2], row[ColumnNames.Field3], row[ColumnNames.Field4], row[ColumnNames.Field5], row[ColumnNames.Field6], row[ColumnNames.Field7], row[ColumnNames.Field8], row[ColumnNames.Field9]));
        }

        return csvExport.ToString();
    }

    /// <summary>
    /// Adds the CSV file to the response.
    /// </summary>
    /// <param name="csvExportContents">The contents of the CSV file.</param>
    internal void DisplayLogFile(string csvExportContents)
    {
        byte[] data = new ASCIIEncoding().GetBytes(csvExportContents);

        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.ContentType = "APPLICATION/OCTET-STREAM";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=Export.csv");
        HttpContext.Current.Response.OutputStream.Write(data, 0, data.Length);
        HttpContext.Current.Response.End();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中创建 .csv 文件 的相关文章

  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 使用 Enumerable.OfType() 或 LINQ 查找特定类型的所有子控件

    Existed MyControl1 Controls OfType
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 在谷歌云上训练神经网络时出现“无法获取路径的文件系统”错误

    我正在使用 Google Cloud 在云上训练神经网络 如下例所示 https cloud google com blog big data 2016 12 how to classify images with tensorflow u
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 是否有相当于 Clang/LLVM 的 .spec 文件,在哪里可以找到参考?

    The gcc驱动程序可以配置为使用特定的链接器 特定的选项和其他细节 例如覆盖系统头 specs files 当前 截至撰写本文时 GCC 版本 4 9 0 的手册此处描述了规范文件 https gcc gnu org onlinedoc
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 新任务中使用的依赖注入服务

    我在需要时使用依赖项注入来访问我的服务 但我现在想要创建一个并发任务 但这会由于依赖项注入对象及其生命周期而导致问题 我读过这篇文章 标题 防止多线程 Link http mehdi me ambient dbcontext in ef6
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i

随机推荐

  • Objective-C/iOS:在后台保持蓝牙连接处于活动状态

    我已经研究了几天了 看起来当手机进入睡眠状态或应用程序在后台时 不可能保持蓝牙连接 然而 我发现一个应用程序声称它们可以一直运行 运行守护者应用程序 http itunes apple com ca app runkeeper id3002
  • jsPDF with Cordova - 添加图像

    我正在尝试使用 jsPDF 库生成 PDF https github com MrRio jsPDF https github com MrRio jsPDF 从移动 Cordova 应用程序中 我目前正在 Android 4 0 4 设备
  • Java反射带参数的私有方法最好的方法是什么?

    我正在尝试使用java反射调用私有方法我开发了一个小方法来调用其他方法迭代所有方法并按名称和参数类型进行比较我已成功调用4个方法 我有一个问题 1 这是最好的方法吗 因为我知道 class getMethod 仅匹配公共方法 Java有内置
  • 停止 ReSharper 添加注释

    我在我的 C 项目中使用 ReSharper 总的来说我很喜欢它 但是 当我执行某些重构操作时 它会不断向代码添加注释 例如 它添加了 NotNull 当我使用 检查参数是否为空 上下文操作时 Before context action p
  • SQL 连接:选择一对多关系中的最后一条记录

    假设我有一张客户表和一张采购表 每次购买都属于一位客户 我想获得所有客户的列表以及他们最后一次购买的商品SELECT陈述 最佳实践是什么 关于建立索引有什么建议吗 请在您的答案中使用这些表 列名称 顾客 id name 购买 id cust
  • Apache Camel 路由中的 Spring Boot 属性使用

    是否可以在 Apache Camel 路由中使用 Spring Boot 属性 Value 工作正常 但这是否可以直接放置表达式的占位符 Update 我知道 PropertiesComponent 但这将是除了我不喜欢的 Applicat
  • 根据时间/时间表交换 div 可见性

    在我的页面上 我有两个 div 一个 div 我希望从上午 10 点到下午 6 点 服务器时间 可见 而另一个 div 在剩余时间内可见 我尝试了一系列搜索来找到某种 javascript 或 jquery 内容交换器 但没有任何运气 感谢
  • 无法终止容器::尝试终止容器,但未收到退出事件

    我无法停止 删除或终止我的 docker 容器 下面给出的命令及其各自的错误消息 1 docker stop
  • 创建存储过程时是否需要“definer”?

    我已经将所有 MySQL 过程编写为root localhost CREATE DEFINER root localhost PROCEDURE p add user 问题是 当部署到另一台服务器时 我必须替换root与当前用户并替换loc
  • 奇怪的程序集名称从手机访问网站时出错

    我有一个用 Asp net MVC 制作的网站 它安装在共享托管环境的根目录中 现在 我已经在 Asp net MVC 中为该网站制作了一个移动版本 并将其安装为子域http m price tag org http m price tag
  • 有人可以解释 BCrypt 如何验证哈希吗?

    我正在使用 C 和 BCrypt Net 来哈希我的密码 例如 string salt BCrypt Net BCrypt GenerateSalt 6 var hashedPassword BCrypt Net BCrypt HashPa
  • 字符串数组是可变的吗?

    我想知道Java中的字符串数组是否是可变的 我知道字符串是不可变的 但是字符串数组怎么样 如果我有一个字符串数组 并更改内容 是否会创建一个新的字符串对象 或者实际值会改变吗 提前致谢 The Strings 包含在String 确实是不可
  • 从 React Native 中解析的对象数组中渲染图像源

    我正在构建一个反应本机应用程序 它假设使用一些 元数据 对象作为源 我正在解析数组中的每个对象并为每个对象返回一个 JSX 布局item 我遇到的唯一问题是如何提供图像来源 因为我将它们存储在本地并且需要require link 他们 我的
  • React Router - 刷新后保持在同一页面

    我正在学习反应 我有一个包含 4 个子页面的页面 我使用 React Router 来浏览这些页面 除了重新加载页面之外 一切正常 当我从页面 主页 转到 关于 或其他页面时 这是可以的 但是当我刷新页面时 它会再次渲染页面 关于 一秒钟
  • 浏览器关闭时的通知

    我有一个 chrome 扩展 当用户访问特定页面时 它会向用户发送通知 我希望在浏览器关闭或在后台运行时发送通知 类似于智能手机 任何想法或提示都会很棒 在 Chrome 扩展中 您可以使用 2 个工具 chrome gcm API htt
  • 如何在 C# 中获取目录大小(目录中的文件)?

    我希望能够使用 C 获取本地目录之一的大小 我试图避免以下情况 伪代码 尽管在最坏的情况下我将不得不解决这个问题 int GetSize Directory int Size 0 foreach File in Directory File
  • 缩放到点和从点缩放

    我正在尝试将 DisplayObject 缩放到某个点 我认为这很容易 但我现在花了一天时间试图弄清楚 基本上我认为这个should工作 强调应该 newPoint is the point being centered There is
  • 如何将音频文件从 iPhone 文档文件夹上传到服务器

    我正在录制语音并将其保存到iphone文件夹中 但我想将其上传到服务器 那么如何执行此操作 NSString path NSString stringWithFormat Documents wav NSHomeDirectory pati
  • 在 ASP 和 VB 中动态添加文本文件到 DDL

    我希望通过动态更新来更新我的 DDL 功能之一 这样如果用户添加更多文件 下拉列表就会选择它 目前我的下拉列表是从VB代码后面拉出来的 如下所示 Public Sub DDL SelectedIndexChanged sender As O
  • 在 C# 中创建 .csv 文件

    好吧 我想用 C 创建一个 csv 文件 我环顾四周 发现很多人都在使用 system IO memorystream 和 system io streamwriter 问题是这样的 我有一个网络应用程序 我想让用户能够导出到 Excel