前言
最近在记单词,准备公共英语三的考试。
在网上找了一下基本模板都是第一行是单词,第二行是单词意思。没有第一行第一列是单词, 第一行第二列是单词意思的excel格式。
代码
// 读取txt文件内容到excel中
public static void Operate(string txtStrs,string exclStrs)
{
// 打开文件获取文件信息
FileStream fs = new FileStream(txtStrs, FileMode.Open, FileAccess.Read);
// 将获取的信息获取到文件流中
StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("gb2312"));
Application app = new Application();
app.Visible = true;
// 得到workbooks有两种方式
//得到WorkBook对象, 可以用两种方式之一: 下面的是打开已有的文件
Microsoft.Office.Interop.Excel.Workbook xBook = app.Workbooks._Open(exclStrs,
Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
// 第二种新建
// xBook=xApp.Workbooks.Add(Missing.Value);//新建文件的代码
//指定要操作的Sheet,如下两种方式
Microsoft.Office.Interop.Excel.Worksheet xSheet = (Microsoft.Office.Interop.Excel.Worksheet)xBook.Sheets[1];
sr.BaseStream.Seek(0, SeekOrigin.Begin); //定位操作点,begin 是一个参考点
string str = sr.ReadLine();//如果 文件有内容
int index = 1;
int rows = 1;
while (str != null)
{
//写入数据
if (index%2==1)
{
Microsoft.Office.Interop.Excel.Range rng3 = xSheet.get_Range(Convert.ToString("A" + rows), Missing.Value);
rng3.Value2 = str;
}
else if (index % 2 == 0)
{
Microsoft.Office.Interop.Excel.Range rng3 = xSheet.get_Range(Convert.ToString("F" + rows), Missing.Value);
rng3.Value2 = str;
rows++;
}
index++;
str = sr.ReadLine();
}
//C#读取TXT文件之后关闭文件,注意顺序,先对文件内部进行关闭,然后才是文件
sr.Close();
fs.Close();
xBook.Save();
xSheet = null;
xBook = null;
app.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出
app = null;
}
最后结果
之前
现在
总结
这里主要用到流的读写操作以及Microsoft.Office.Interop.Excel类库操作excel。