C#中将DataGridView中的数据导入到Csv文件及导出到Excel
导读:收集整理的这篇文章主要介绍了C#中将DataGridView中的数据导入到Csv文件及导出到Excel,觉得挺不错的,现在分享给大家,也给大家做个参考。1,将DataGridView中的数据导入到Csv文件中 public static b...
收集整理的这篇文章主要介绍了C#中将DataGridView中的数据导入到Csv文件及导出到Excel,觉得挺不错的,现在分享给大家,也给大家做个参考。1,将DataGridView中的数据导入到Csv文件中 public static bool dataGridViewToCSV(DataGridView dataGridView) {
if (dataGridView.Rows.Count == 0) {
MessageBox.Show("没有数据可导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
SaveFileDiaLOG saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
saveFileDialog.FilterIndex = 0;
saveFileDialog.ReStoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.FileName = null;
saveFileDialog.TITle = "保存";
if (saveFileDialog.ShowDialog() == DialogResult.OK) {
Stream stream = saveFileDialog.OPEnFile();
StreamWriter sw = new StreamWriter(stream, System.Text.Encoding.GetEncoding(-0));
string strLine = "";
try {
//表头 for (int i = 0;
i dataGridView.ColumnCount;
i++) {
if (i >
0) strLine += ",";
strLine += dataGridView.Columns[i].HeaderText;
}
strLine.Remove(strLine.Length - 1);
sw.WriteLine(strLine);
strLine = "";
//表的内容 for (int j = 0;
j dataGridView.Rows.Count;
j++) {
strLine = "";
int colCount = dataGridView.Columns.Count;
for (int k = 0;
k colCount;
k++) {
if (k >
0 &
&
k colCount) strLine += ",";
if (dataGridView.Rows[j].Cells[k].Value == null) strLine += "";
else {
string cell = dataGridView.Rows[j].Cells[k].Value.ToString().Trim();
//防止里面含有特殊符号 cell = cell.Replace("\"", "\"\"");
cell = "\"" + cell + "\"";
strLine += cell;
}
}
sw.WriteLine(strLine);
}
sw.Close();
stream.Close();
MessageBox.Show("数据被导出到:" + saveFileDialog.FileName.ToString(), "导出完毕", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex) {
MessageBox.Show(ex.Message, "导出错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}
return true;
}
2,C#中将DataGridView中的数据导出到Excel中
public static bool dataGridViewToExcel(DataGridView dataGridView) {
if (dataGridView.Rows.Count == 0) {
MessageBox.Show("没有数据可导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
string fileName = "";
string saveFileName = "";
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xlsx";
saveDialog.Filter = "Excel文件|*.xlsx";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf(":") 0) return false;
//被点了取消 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null) {
MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");
return false;
}
Microsoft.Office.Interop.Excel.WorkBooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
//取得sheet1 //写入标题 for (int i = 0;
i dataGridView.ColumnCount;
i++) {
worksheet.Cells[1, i + 1] = dataGridView.Columns[i].HeaderText;
}
//写入数值 for (int r = 0;
r dataGridView.Rows.Count;
r++) {
for (int i = 0;
i dataGridView.ColumnCount;
i++) {
worksheet.Cells[r + 2, i + 1] = dataGridView.Rows[r].Cells[i].Value;
}
System.Windows.Forms.Application.DoEvents();
}
worksheet.Columns.EntireColumn.AutoFit();
//列宽自适应 MessageBox.Show(fileName + "资料保存成功", "提示", MessageBoxButtons.OK);
if (saveFileName != "") {
try {
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
//fileSaved = true;
}
catch (Exception ex) {
//fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
}
xlApp.Quit();
Kill(xlApp);
GC.Collect();
//强行销毁 return true;
}
//*********************************************************************************************// //*功能:当使用Excel.Application方法的时候,系统会自动创建一个Excel进程,即使当你使用Excel.Quit()之后,也是不会关闭的。 //*参数:通过进程ID来唯一标识我们自己创建的进程,然后在关闭Excel.Application的时候一同将进程Kill掉。 //*返回值:无 //*时间:2018-04-25 //**********************************************************************************************// public static void Kill(Microsoft.Office.Interop.Excel.Application excel) {
IntPtr t = new IntPtr(excel.Hwnd);
int k = 0;
GetWindowThreadPRocessId(t, out k);
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill();
}
相关推荐:
C#创建Excel文件并将数据导出到Excel文件的示例代码详解
c# 将Datatable数据导出到Excel表格中的示例代码分享
以上就是C#中将DataGridView中的数据导入到Csv文件及导出到Excel的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C#中将DataGridView中的数据导入到Csv文件及导出到Excel
本文地址: https://pptw.com/jishu/593171.html
