C#把txt的数据导入excel,用逗号分隔
2016-03-03 02:56
519 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Office.Core; using Microsoft.Office.Interop.Excel; using System.IO; using System.Reflection; using System.Diagnostics; using System.Threading; namespace xiaoli { public partial class Form1 : Form { public Form1() { InitializeComponent(); } OpenFileDialog ofdTxt = new OpenFileDialog(); OpenFileDialog ofdExcel = new OpenFileDialog(); string pathTxt = null; //txt文档路径 string pathExcel = null; //excel文件路径 List listTxt = new List(); //用于储存读取的文本文件 Thread th; private void button1_Click(object sender, EventArgs e) { try { ofdTxt.Title = "请选择要打开的文本文件"; ofdTxt.Multiselect = false; ofdTxt.Filter = "文本文件|*.txt|所有文件|*.*"; ofdTxt.ShowDialog(); if (ofdTxt.FileName.ToString() == "" || ofdTxt.FileName.ToString() == null) { MessageBox.Show("没有选择文件"); return; } label1.Text = ofdTxt.FileName.ToString(); pathTxt = ofdTxt.FileName.ToString(); string[] strs = File.ReadAllLines(pathTxt, Encoding.Default); foreach (var item in strs) { listTxt.Add(item); } } catch { MessageBox.Show("选择txt部分出错"); } } private void button1_Click_1(object sender, EventArgs e) { try { ofdExcel.Title = "请选择微软Excel文件"; ofdExcel.Multiselect = false; ofdExcel.ShowDialog(); label2.Text = ofdExcel.FileName.ToString(); pathExcel = ofdExcel.FileName.ToString(); } catch { MessageBox.Show("选择excel部分出错"); } } int colNum = 1; private void button2_Click(object sender, EventArgs e) { //用新线程来导入 try { try { colNum = int.Parse(tbColNum.Text.ToString()); } catch { tbColNum.Text = "1"; } th = new Thread(ImportExcel); th.IsBackground = true; th.Start(); } catch { MessageBox.Show("导入出错"); } } /// /// 点击导入到excel的方法 /// private void ImportExcel() { //try //{ label5.Text = "请稍等..."; //MessageBox.Show(pathTxt); Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbooks wbks = app.Workbooks; _Workbook _wbk = wbks.Add(pathExcel); object miss = Missing.Value; //取得,删除或者添加sheet Sheets shs = _wbk.Sheets; //取得 _Worksheet _wsh = (_Worksheet)shs.get_Item(1); // _wsh.Name = "xiaoli2"; 修改表名 //读取txt几行就循环几次 for (int i = 0; i < listTxt.Count; i++) { //把txt中的每一行用","号分隔成string数组 string[] strNew = listTxt[i].Split(new char[] { ',', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); //行 新建行 ((Range)_wsh.Rows[1, Missing.Value]).Insert(Missing.Value, XlInsertFormatOrigin.xlFormatFromLeftOrAbove); //设置列格式 Range myrange = _wsh.Range[_wsh.Cells[1, colNum], _wsh.Cells[1, colNum]]; myrange.NumberFormatLocal = "@";//文本格式 //设置单元格宽度 //myrange.ColumnWidth = 20; //单元格 向单元格中写入数据 循环写入行中的每一个单元格 for (int j = 0; j < strNew.Length; j++) { _wsh.Cells[1, j + 1] = strNew[j]; } } //输出内容 //string temp = ((Range)_wsh.Cells[4, 1]).Text.ToString(); //Console.WriteLine(temp); app.DisplayAlerts = false; app.AlertBeforeOverwriting = false; _wbk.SaveAs(pathExcel, miss, miss, miss, miss, miss, XlSaveAsAccessMode.xlNoChange, miss, miss, miss, miss, miss); app.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(app); app = null; GC.Collect(); label5.Text = "导入成功,You're Pig!"; th.Abort(); //} //catch //{ // MessageBox.Show("excel部分出错"); //} } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } } }
相关文章推荐
- 使用Python生成Excel格式的图片
- 我是运营,我没有假期
- c#调用COM组件
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- VBA将excel数据表生成JSON文件
- excel vba 限制工作表的滚动区域代码
- excel vba 高亮显示当前行代码
- DB2数据库的安装
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- “传奇”图象数据存储方式
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结