社区
C#
帖子详情
怎么把数组里的数据导入到.cvs文件中
wangfeizjk
2007-07-27 10:50:28
如题,最好有代码
...全文
143
5
打赏
收藏
怎么把数组里的数据导入到.cvs文件中
如题,最好有代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yqlx521
2009-09-24
打赏
举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.IO;
using Microsoft.VisualBasic.FileIO;
namespace INGTEC.Framework
{
/// <summary>
/// 操作CSV存取类
/// </summary>
public static class INGCSV
{
#region 变量
/// <summary>
/// 取出配置文件中的分隔符
/// </summary>
private static string _splitChar = null;
/// <summary>
/// 取出配置文件中的编码方式
/// </summary>
private static string _encodeFormat = null;
#endregion
#region 构造方法
/// <summary>
/// 构造方法获取分隔符、编码方式
/// </summary>
static INGCSV()
{
_splitChar = INGConfig.GetConfig(INGConstants.XML_CONFIG, INGConstants.XML_CSV_SPLIT, INGConstants.XML_SPLIT_CHAR);
_encodeFormat = INGConfig.GetConfig(INGConstants.XML_CONFIG, INGConstants.XML_ENCODING, INGConstants.XML_ENCODE_FORMAT);
}
#endregion
#region 写CSV方法
/// <summary>
/// 写入CSV
/// </summary>
/// <param name="hasHeader">列头</param>
/// <param name="dtOutputCSV">文件内容</param>
public static void WriteCSV(bool hasHeader, DataTable dtOutputCSV)
{
// Log开始
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.START);
// 获取写入文件名称以及格式
String strFileName;
SaveFileDialog savFileDialog = new SaveFileDialog();
savFileDialog.Reset();
savFileDialog.DefaultExt = "csv";
savFileDialog.Filter = "CSV|*.csv";
savFileDialog.ShowDialog();
strFileName = savFileDialog.FileName;
// 判断文件名
if (string.IsNullOrEmpty(strFileName))
{
// 信息提示
INGMessage.ShowMessage("M009", "WriteFileName");
}
// 重载方法调用,写入文件
WriteCSV(hasHeader, dtOutputCSV, strFileName);
// Log结束
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.END);
}
#endregion
#region 写入CSV,附带路径方法
/// <summary>
/// 写入CSV,附带路径
/// </summary>
/// <param name="hasHeader">列头</param>
/// <param name="dtOutputCSV">文件内容</param>
/// <param name="strPath">指定文件路径</param>
public static void WriteCSV(bool hasHeader, DataTable dtOutputCSV, string strPath)
{
// Log开始
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.START);
// DataTable有无判断
if (dtOutputCSV == null)
{
throw new ArgumentNullException("Argument(dtOutputCSV) is null!");
}
// StringBuilder初始化
StringBuilder sb = new StringBuilder();
// DataTable有无数据判断
if (hasHeader)
{
//添加列头
foreach (DataColumn dc in dtOutputCSV.Columns)
{
if (dc.DataType == Type.GetType("System.String"))
{
dc.ColumnName = "'" + dc.ColumnName + "'"; //修改
}
sb.Append(dc.ColumnName).Append(_splitChar);
}
// 创建新行
sb.Remove(sb.Length - 1, 1);
sb.Append(Environment.NewLine);
}
// 路径为空或者取消保存时
if(strPath == "")
{
return;
}
// 添加行
foreach (DataRow dr in dtOutputCSV.Rows)
{
foreach (object rowItem in dr.ItemArray)//object rowItem
{
object itemValue = rowItem;
itemValue = "'" + itemValue + "'";
sb.Append(itemValue).Append(_splitChar);
}
// 创建新行
sb.Remove(sb.Length - 1, 1);
sb.Append(Environment.NewLine);
}
using (TextWriter tw = new StreamWriter(strPath, false, Encoding.GetEncoding(_encodeFormat)))
{
tw.Write(sb.ToString());
INGMessage.ShowMessage("M010", "Success");
tw.Flush();
tw.Close();
}
// Log结束
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.END);
}
#endregion
#region 读CSV文件方法
/// <summary>
/// 读CSV文件
/// </summary>
/// <param name="hasHeader">列头</param>
/// <returns>返回信息</returns>
public static DataTable ReadCSV(bool hasHeader)
{
// Log开始
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.START);
String strFileName;
using (OpenFileDialog ofdFileDialog = new OpenFileDialog())
{
ofdFileDialog.Reset();
ofdFileDialog.DefaultExt = "csv";
ofdFileDialog.Filter = "CSV|*.csv";
ofdFileDialog.ShowDialog();
// 文件名取得
strFileName = ofdFileDialog.FileName;
}
// 文件路径取得
String strFilePath = Path.GetFileName(strFileName);
// 文件路径判断
if (string.IsNullOrEmpty(strFilePath))
{
return null;
}
// Log结束
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.END);
return ReadCSV(hasHeader, strFilePath);
}
#endregion
#region 读指定路径CSV文件方法
/// <summary>
/// 读指定路径CSV文件
/// </summary>
/// <param name="hasHeader">列头</param>
/// <param name="strPath">指定文件路径</param>
/// <returns>返回信息</returns>
public static DataTable ReadCSV(bool hasHeader, string strPath)
{
// Log开始
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.START);
String FileName = Path.GetFileName(strPath);
// 文件路径判断
if (string.IsNullOrEmpty(FileName))
{
return null;
}
DataTable dt = new DataTable(FileName);
// 文本文件分析instance生成
TextFieldParser parser = new TextFieldParser(strPath, Encoding.GetEncoding(_encodeFormat));
// 指定文件形式
parser.TextFieldType = FieldType.Delimited;
// 段落分割
parser.SetDelimiters(_splitChar);
// 设置CSV行计数
int iRowCnt = 0;
// 到文件最后边界
while (!parser.EndOfData)
{
// 读入一行
string[] row = parser.ReadFields();
// CSV行判断
if (iRowCnt.Equals(0))
{
// 判断列头有无
if (hasHeader)
{
int i = 0;
// 添加列到行
foreach (string sColumn in row)
{
// DataColumn初始化
DataColumn column = new DataColumn();
column.DataType = Type.GetType("System.String");
string sColumnValue = sColumn;
sColumnValue = sColumnValue.Substring(1, sColumnValue.Length - 2);
column.ColumnName = sColumnValue;
dt.Columns.Add(column);
}
}
}
// 数据
else //修改
{
// 行添加
int rowLength = row.Length;
DataRow dr = dt.NewRow();
for (int j = 0; j < rowLength;j++ )
{
string columnValue = row.GetValue(j).ToString();
columnValue = columnValue.Substring(1, columnValue.Length - 2);
dr[j] = columnValue;
}
dt.Rows.Add(dr);
}
// CSV行计数
iRowCnt++;
}
// Log结束
INGLog.WriteLog(INGLogLevel.Debug, INGConstants.END);
return dt;
}
#endregion
}
}
jerry_zuo
2009-09-17
打赏
举报
回复
[Quote=引用 2 楼 downmoon 的回复:]
给个DataTable导出xls/cvs的例子,数组类似
http://blog.csdn.net/downmoon/archive/2009/01/17/3796026.aspx
http://blog.csdn.net/downmoon/archive/2009/01/17/3796652.aspx
[/Quote]
详细~~ 辛苦~~
happyer_longlong
2009-09-17
打赏
举报
回复
很简单 创建文件 流分割,流写入
downmoon
2009-09-02
打赏
举报
回复
给个DataTable导出xls/cvs的例子,数组类似
http://blog.csdn.net/downmoon/archive/2009/01/17/3796026.aspx
http://blog.csdn.net/downmoon/archive/2009/01/17/3796652.aspx
zhouyanfss
2009-09-01
打赏
举报
回复
很简单,直接用流写就可以,中间用“,”分割下,文件名保存为.CSV
streamWriter对象就可以,没用过的话可以研究下
phpMyAdmin将CSV
文件
导入
数据
库+PHP
数组
转JS
数组
文章目录一、背景二、步骤1.CSV
文件
导入
数据
库2.SQL语言查询
数据
三、PHP
数组
转JS
数组
1.json_encode()2.decodeURIComponent()3.应用总结 一、背景 开发
中
,经常将csv
文件
中
的
数据
导入
数据
库,这样就可以在使用部分
数据
时利用php语言读取
数据
,存入php
数组
,最后把这些数值赋给JS,在前端界面使用,比如形成图表。 以下记录这一过程,重点是将简单的php数值索引一维
数组
转化为JS
数组
。 二、步骤 1.CSV
文件
导入
数据
库 打开phpMyAdmin,选择一个
数据
库,点
CSV
文件
处理——转为
数组
1.与
数组
进行转换 初始示范表如下: 1.1 CSV
文件
转化为
数组
import numpy as np mydata = np.loadtxt(open("example.csv","rb"),delimiter=",",skiprows=0) 转换结果: 1.2
数组
转化为CSV
文件
import numpy as np mydata=[[1,2,3],[4,5,6],[7,8,9]] np.savetxt('new.csv', mydata, delimiter = ',') 未完待续……
Yii2 大量
数据
导入
导出到
cvs
文件
(mongodb版)并下载,mysql可参考同样的思路
导言: 大家都知道如果想导出大量
数据
到excel无论使用PHPEexcel还是他的升级版PhpSpreadsheet 都会导致内存溢出发错误,原因是phpexcel会把大量
数据
对象集合存入到内存
中
。那要如何解决呢?一般的思路都是设置php的内存的上限值,但这种方法也就是饮鸩止渴的方法,无法从根本上解决问题。而我这种方法是利用yii的batch方法来实现,每次取出固定数量的
数据
。啥也不说...
【matlab】 从csv复杂
文件
中
提取
数据
到
数组
我是
中
国人
java通过.csv
文件
导入
数据
本文章都是自创,如有类同纯属巧合,转发的朋友请写我的文章链接 公司用到.csv
文件
导入
数据
,由于存储格式是文字,逗号,文字,逗号的格式,所以poi
导入
已经不适用 了 实体类: 我由于
导入
多个
文件
所以实体类字段比较多,使用的时候自行删减。 package com.lianZhong.model; public class SheShi { /** * 编号 */ private String bianHao; /** * 名称 */ p
C#
110,528
社区成员
642,571
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章