ASP.NET WebAPI导出CSV

一、JS脚本

window.open("../Ticket/ExportTicket");

二、后台实现代码

[HttpGet]
public ActionResult ExportTicket(TicketSearch search)
{
  if (search != null)
  {
    search.CurrentPage = 1;
    search.PageSize = 0;
  }
  string[] lstTitles = new string[] { "编号", "标题"};

  int TotalCount = 0;
  List<TicketData> lstTicketData = ListTicketEntityToData(search, out TotalCount);
  List<string[]> lstData = new List<string[]>();
  foreach (TicketData itemData in lstTicketData)
  {
    string[] data = new string[]
  {
  itemData.Barcode,
  itemData.Label,
  itemData.SiteId.ToString(),
  Helper.Htmlhelper.GetSiteInfo(itemData.SiteId),
  itemData.Owner,
  string.IsNullOrEmpty(itemData.CardId) ? "" : itemData.CardId,
  itemData.StartDate == null ? "" : itemData.StartDate.Value.ToString("yyyy-MM-dd HH:mm"),
  itemData.EndDate == null ? "" : itemData.EndDate.Value.ToString("yyyy-MM-dd HH:mm"),
  itemData.IsValid.ToString(),
  itemData.IsUsed.ToString(),
  itemData.CreateTime.ToString("yyyy-MM-dd HH:mm")
  };
  lstData.Add(data);
  }
  string ExportFileName = Helper.ImportExport.ExportData(lstTitles, lstData);
  return File(new System.IO.FileStream(ExportFileName, System.IO.FileMode.Open), "application/octet-stream", "Ticket" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv");
}

public static string ExportData(string[] lstTitles, List<string[]> lstData)
{
  try
  {
    lock (RunningExport)
    {
      string TemplatePath = AppDomain.CurrentDomain.BaseDirectory + "Export";
      string FullFileName = AppDomain.CurrentDomain.BaseDirectory + "Export\\template.csv";
      if (Directory.Exists(TemplatePath))
      {
        if (File.Exists(FullFileName))
        File.Delete(FullFileName);
      }
      else
      {
        Directory.CreateDirectory(TemplatePath);
      }

      if (lstTitles.Length <= 0)
      {
        return null;
      }

      FileStream fs = new FileStream(FullFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
      StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
      string data = "";

      foreach (string itemTitle in lstTitles)
      {
        data += itemTitle + ",";
      }
      sw.WriteLine(data.TrimEnd(','));

      foreach (string[] itemData in lstData)
      {
        data = "";
        foreach (string itemChildData in itemData)
        {
          data += itemChildData + ",";
        }
        sw.WriteLine(data.TrimEnd(','));
      }
      sw.Close();
      fs.Close();
      return FullFileName;
    }
  }
  catch (Exception)
  {
    return null;
  }
}

到此这篇关于ASP.NET WebAPI导出CSV的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • asp.net+js 实现无刷新上传解析csv文件的代码

    前阵子工作中用到,贴上代码,仅保留上传有关的代码,发现code其实很少. 上传页面html/js 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht

  • .Net Core WebAPI导入CSV

    一.前端代码 <button type="button" class="btn btn-primary" onclick="InportTicket()">导入</button> <input id="fileToUpload" type="file" name="upfile" style="display:none;"> ///

  • Asp.net导出Excel/Csv文本格式数据的方法

    刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下 偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪明了反而有些麻烦,就像如果输入身份证(18位数字)的话那就不行了.超过了11位呢,下面查了些资料总结一下解决方案: 方法1: 在往excel中添加数据的时候在数据的前面加 单引号,我的是这个方法解决的 如:Sheet.Cells[iRow, iCol] ="'"+ ds.Tables[0]

  • ASP.NET开源导入导出库Magicodes.IE完成Csv导入导出的方法

    说明 本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出. 关于Magicodes.IE 导入导出通用库,通过导入导出DTO模型来控制导入和导出,支持Excel.Word.Pdf和Html. GitHub地址:https://github.com/xin-lai/Magicodes.IE 主要步骤 1.安装包Magicodes.IE.Csv Install-Package Magicodes.IE.Csv 2.使用Magicodes.IE.Csv导出Csv 通过如下代码片段我

  • asp.net 导出到CSV文件乱码的问题

    http://social.microsoft.com/Forums/zh-CN/295/thread/14a833f5-95bf-48ef-b6cf-c6028f338561 string name = System.Configuration.ConfigurationSettings.AppSettings["downloadurl"].ToString();FileStream fs = new FileStream(name, FileMode.Create, FileAcc

  • ASP.NET WebAPI导出CSV

    一.JS脚本 window.open("../Ticket/ExportTicket"); 二.后台实现代码 [HttpGet] public ActionResult ExportTicket(TicketSearch search) { if (search != null) { search.CurrentPage = 1; search.PageSize = 0; } string[] lstTitles = new string[] { "编号", &qu

  • 应用Java泛型和反射导出CSV文件的方法

    本文实例讲述了应用Java泛型和反射导出CSV文件的方法.分享给大家供大家参考.具体如下: 项目中有需求要把数据导出为CSV文件,因为不同的类有不同的属性,为了代码简单,应用Java的泛型和反射,写了一个函数,完成导出功能. 复制代码 代码如下: public <T> void saveFile(List<T> list, String outFile) throws IOException {         if (list == null || list.isEmpty())

  • asp.net实现导出DataTable数据到Word或者Excel的方法

    本文实例讲述了asp.net实现导出DataTable数据到Word或者Excel的方法.分享给大家供大家参考,具体如下: /// <summary>< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> /// 导出DataTable数据到Word或者Excel /// </summary> /// <param name=&q

  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."\n"; 然后对需要保存csv的数组进行foreach循环,例如 复制代码 代码如下: if (!empty($lists)){                  foreach($lists as $key => $value){                    $ti

  • Yii框架扩展CGridView增加导出CSV功能的方法

    本文实例讲述了Yii框架扩展CGridView增加导出CSV功能的方法.分享给大家供大家参考,具体如下: Yii提供的CGridView组件没有内置数据导出功能,不过我们可以通过扩展该组件来添加该功能. 具体方法如下: 1.首先派生一个子类,添加一个action成员,在该视图的init函数中判断是浏览动作还是数据导出动作,如果是浏览动作者则保持默认行为,否则输出csv文件. public function init() { if($this->action == 'export') { pare

  • 详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. 复制代码 代码如下: CREATE TABLE `student` (       `id` int(11) NOT NULL auto_increment,       `name` varchar(50) NOT NULL,       `sex` varchar(10) NOT NULL,       `age` smallint(3) NO

  • Mysql 导入导出csv 中文乱码问题的解决方法

    导入csv: 复制代码 代码如下: load data infile '/test.csv' into table table_name fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n' ignore 1 lines; 导csv: 复制代码 代码如下: SELECT * INTO OUTFILE '/test.csv'  FIELDS TERMIN

  • mysql 导出CSV文件 并带表头的方法

    参考官方文档 http://dev.mysql.com/doc/refman/5.7/en/select-into.html mysql> select game,domain,type -> into outfile 'd:\\game.csv' -> fields terminated by ',' -> lines terminated by '\n' -> from game_lists limit 10; 实例如下: mysql> create table t

  • php导出CSV抽象类实例

    本文实例讲述了php导出CSV抽象类及其应用,分享给大家供大家参考.具体分析如下: 该php导出CSV抽象类,可根据总记录数与每批次记录数,计算总批次,循环导出.避免内存不足的问题. ExportCSV.class.php类文件如下: <?php /** php Export CSV abstract class,根据总记录数与每批次记录数,计算总批次,循环导出. * Date: 2014-05-16 * Author: fdipzone * Ver: 1.0 * * Func: * publi

  • php导出csv文件,可导出前导0实例代码

    实例一:可导出前导0 //导出csv格式文件 $data数据 $title_arr标题 $file_name文件名 function exportCsv($data,$title_arr,$file_name=''){ ini_set("max_execution_time", "3600"); $csv_data = ''; /** 标题 */ $nums = count($title_arr); for ($i = 0; $i < $nums - 1; +

随机推荐