当前位置:网站首页>【C#笔记】winform中保存DataGridView中的数据为Excel和CSV
【C#笔记】winform中保存DataGridView中的数据为Excel和CSV
2022-07-02 06:26:00 【寂云萧】
保存为Excel
使用system.io保存,需要导入的库:using System.IO;
//使用system.io保存
//grid为整个DataGridView对象,而filePath为要保存的路径(包括后缀名),下同
public void saveExcelIO(DataGridView grid, string filePath)
{
Thread.Sleep(1000);
StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("gb2312"));
StringBuilder sb = new StringBuilder();
//写入标题
for(int k = 0; k < grid.Columns.Count; k++)
{
if (grid.Columns[k].Visible)
{
//\t相当于是在键盘上打一个tab键
sb.Append(grid.Columns[k].HeaderText.ToString().Trim() + "\t");
}
}
//换行
sb.Append(Environment.NewLine);
//开始写入每行的数值
for (int i = 0; i < grid.Rows.Count - 1; i++)
{
System.Windows.Forms.Application.DoEvents();
for(int j = 0; j < grid.Columns.Count; j++)
{
if (grid.Columns[j].Visible)
{
//单元格有一定字节的数量限制,可能会超出,超出会出现两个单元格内容一样的情况
sb.Append(grid.Rows[i].Cells[j].Value.ToString().Trim() + "\t");
}
}
sb.Append(Environment.NewLine);//换行
}
sw.Write(sb.ToString());
sw.Flush();
sw.Close();
}
保存为CSV
//保存csv
public void saveCSV(DataGridView grid,string filePath)
{
Thread.Sleep(1000);
StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("gb2312"));
string strLine = "";
//表头
for (int i = 0; i < grid.ColumnCount; i++)
{
if (i > 0)
strLine += ",";
strLine += grid.Columns[i].HeaderText;
}
strLine.Remove(strLine.Length - 1);
sw.WriteLine(strLine);
strLine = "";
for(int j = 0; j < grid.Rows.Count; j++)
{
strLine = "";
int col = grid.Columns.Count;
for(int k = 0; k < col; k++)
{
if (k > 0 && k < col)
strLine += ",";
if (grid.Rows[j].Cells[k].Value == null)
strLine += "";
else
{
string cell = grid.Rows[j].Cells[k].Value.ToString().Trim();
//防止里面有特殊符号
cell = cell.Replace("\"", "\"\"");
cell = "\"" + cell + "\"";
strLine += cell;
}
}
sw.WriteLine(strLine);
}
sw.Close();
}
边栏推荐
- 自然辩证辨析题整理
- Regular expressions in MySQL
- Mmdetection model fine tuning
- Semi supervised mixpatch
- [mixup] mixup: Beyond Imperial Risk Minimization
- PPT的技巧
- 【Wing Loss】《Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks》
- 【Random Erasing】《Random Erasing Data Augmentation》
- CPU的寄存器
- [introduction to information retrieval] Chapter 3 fault tolerant retrieval
猜你喜欢

Traditional target detection notes 1__ Viola Jones

Mmdetection installation problem

【双目视觉】双目立体匹配
![[CVPR‘22 Oral2] TAN: Temporal Alignment Networks for Long-term Video](/img/bc/c54f1f12867dc22592cadd5a43df60.png)
[CVPR‘22 Oral2] TAN: Temporal Alignment Networks for Long-term Video

传统目标检测笔记1__ Viola Jones

【Paper Reading】

MMDetection安装问题

【Random Erasing】《Random Erasing Data Augmentation》

open3d学习笔记五【RGBD融合】

Timeout docking video generation
随机推荐
How do vision transformer work?【论文解读】
Faster-ILOD、maskrcnn_ Benchmark installation process and problems encountered
【双目视觉】双目立体匹配
【BiSeNet】《BiSeNet:Bilateral Segmentation Network for Real-time Semantic Segmentation》
程序的内存模型
【Wing Loss】《Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks》
【Mixup】《Mixup:Beyond Empirical Risk Minimization》
What if a new window always pops up when opening a folder on a laptop
【Mixup】《Mixup:Beyond Empirical Risk Minimization》
MoCO ——Momentum Contrast for Unsupervised Visual Representation Learning
Faster-ILOD、maskrcnn_benchmark训练自己的voc数据集及问题汇总
【AutoAugment】《AutoAugment:Learning Augmentation Policies from Data》
【Sparse-to-Dense】《Sparse-to-Dense:Depth Prediction from Sparse Depth Samples and a Single Image》
【Mixed Pooling】《Mixed Pooling for Convolutional Neural Networks》
论文tips
Use matlab to realize: chord cut method, dichotomy, CG method, find zero point and solve equation
【Mixed Pooling】《Mixed Pooling for Convolutional Neural Networks》
TimeCLR: A self-supervised contrastive learning framework for univariate time series representation
Implement interface Iterable & lt; T&gt;
Huawei machine test questions