怎样用宏把EXCEL里C列的数据全部自动导出保存为CSV格式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用宏把EXCEL里C列的数据全部自动导出保存为CSV格式?相关的知识,希望对你有一定的参考价值。

如c列有1、2、3、4、5、6、7数值,我想单独保存为CSV格式用作他用,谢谢不吝赐教! 我知道有办法可以人工的去保存,但是我想通过宏的自动运行去做这些事情,同时可以学习一下此类宏。可以免去人工的复制,黏贴另存为。。。

这个格式我没用过,但是保存的格式里本身就有,你直接另存为这个格式不就行了,哪里还需要宏
如果你不想表格全部存入,你可以新建一个表格,复制粘贴这一列数值到新表,另存为这个格式就行了
参考技术A 搜一下:怎样用宏把EXCEL里C列的数据全部自动导出保存为CSV格式?

怎样将C#生成的数据导出

我不是专业学计算机的,咱就学过C#基础。
但是必须要用C#做作业。
做了之后要检查结果是否正确。但是上万个数据。。。望天。
我总不能手动把C#得到的一个上万行的2维数组手动抄下来吧。
所以需要把数据导出然后用其他数学软件检验结果的正确性。
请问如何将一个C#程序做出来的一个2维数组输出到其他文件(比如excel, txt等格式的文件)
上网查了好多,好复杂啊,咱就大学里这个学期学了2月的C#,实在搞不来。
希望各位高手指点啊,简简单单的让它们排着队出来就成啦~
谢~~

首先呢 你得把你的数据绑定到一个GridView中 然后 下面的方法 就是导出了。
/// <summary>
/// 将超链接、下拉框等样式去掉
/// </summary>
/// <param name="gv"></param>
private void DisableControls(Control gv)

Literal l = new Literal();

string name = String.Empty;
for (int i = 0; i < gv.Controls.Count; i++)

if (gv.Controls[i].GetType() == typeof(LinkButton))

l.Text = (gv.Controls[i] as LinkButton).Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);

else if (gv.Controls[i].GetType() == typeof(DropDownList))

l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);

else if (gv.Controls[i].GetType() == typeof(HyperLink))

l.Text = (gv.Controls[i] as HyperLink).Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);


if (gv.Controls[i].HasControls())

DisableControls(gv.Controls[i]);




/// <summary>
/// 将GridView中的内容导出成Excel文件
/// 如文件名为空,则使用规则生成文件默认
/// </summary>
/// <param name="FileName">扩展名必须为xls,而不能是xlsx,否则不能直接在Excel中打开</param>
public void ToExcel(string FileName)

if (string.IsNullOrEmpty(FileName))

string filename = DateTime.Now.Ticks.ToString() + ".xls";
FileName = this.Parent.Page.Server.MapPath("~/Temp/" + filename);


//去除分页、排序
this.AllowPaging = false;
this.AllowSorting = false;

this.AutoDataBind();

//生成html
this.DisableControls(this);
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
this.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
this.RenderControl(hw);
string str = tw.ToString();
str = (Regex.Replace(str, @"(<a(.|\s)*?>)|</a>", "", RegexOptions.IgnoreCase));
HttpContext.Current.Response.Write(str);
HttpContext.Current.Response.End();

//还原分页、排序
this.AllowPaging = true;
this.AllowSorting = true;

this.AutoDataBind();

#endregion
参考技术A 以下代码以CSV格式保存,以逗号分隔方式保存数据,保留数组的原模原样,可以使用记事本或者Excel直接打开。
int[][] array = new int[] 1, 2, 3 , new int[] 4, 5, 6 , new int[] 7, 8, 9 ;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.Filter = "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*";
if (openFile.ShowDialog() == DialogResult.OK)

string str = "";
StreamWriter writer = new StreamWriter(openFile.FileName, false, Encoding.Default);
for (int i = 0; i < array.Length; i++)

for (int j = 0; j < array[i].Length; j++)
str += array[i][j] + ",";
str = str.TrimEnd(',');
writer.WriteLine(str);
str = "";

writer.Close();
参考技术B 先用数组的sort()函数排序,然后
int[] aarray = new int[10000];
string input = "";
foreach (int a in aarray)

input += a + "\r\n";

//写入文本
StreamWriter sw = new StreamWriter(pathname);
sw.Write(input);
sw.Close();本回答被提问者采纳

以上是关于怎样用宏把EXCEL里C列的数据全部自动导出保存为CSV格式?的主要内容,如果未能解决你的问题,请参考以下文章

excel文件里有多个sheet,怎样把每个sheet全部导出为单独的xls

Excel表格问题,怎样从一个表格中自动提取其中一部分表格

怎样批量将excel中多行的数据合并为一行,并且自动换行?

在EXCEL表格中,如何自动生成数据?

对时间序列数据作出指数平滑预测后,如何用excel计算数据的均方误差(MSE)?

csv文件,excel保存后再打开乱码。