要求做一个excel文本的log。也是刚刚接触,在网上查了一些资料,记录下:
string str1 = System.Environment.CurrentDirectory;//获得当前程序所在文件夹
string str2 = "Log.xlsx";
string fileName = str1 + "\\" + str2;
Microsoft.Office.Interop.Excel.Application xlApp = null;
Microsoft.Office.Interop.Excel.Workbook workbook = null;
Microsoft.Office.Interop.Excel.Sheets sheets = null;
Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
Microsoft.Office.Interop.Excel.Range range= null;
try
{
xlApp = new Microsoft.Office.Interop.Excel.Application();//excel实例
if (xlApp == null)
{
MessageBox.Show("无法创建excel对象,可能系统没有安装excel");
return;
}
workbook = xlApp.Workbooks.Add(true);//workbook
if (!File.Exists(fileName))//判断文件是否存在
{
sheets = workbook.Worksheets;//实例表格
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets[1];//第一个表格
workbook.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}
workbook = xlApp.Workbooks.Open(fileName,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);//打开Excel
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)xlApp.Worksheets.get_Item(1);
int n = worksheet.UsedRange.Rows.Count;//获取使用过的行数
if (n == 1)//excel为空的时候
{
//设置标题
worksheet.Cells[1, 1] = "XX";
worksheet.Cells[1, 2] = "XXX";
worksheet.Cells[1, 3] = "XXXXX";
//设置值log
worksheet.Cells[n + 1, 1] = "1A";
worksheet.Cells[n + 1, 2] ="1B";
worksheet.Cells[n + 1, 3] = "1C";
worksheet.Cells[n + 1, 4] = "1D";
}
else
{
worksheet.Cells[n+1 , 1] = "A";
worksheet.Cells[n +1, 2] ="B";
worksheet.Cells[n +1, 3] = "C";
worksheet.Cells[n +1, 4] = "D";
}
workbook.Save();//保存
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
return;
}
finally
{
workbook.Close(false, Type.Missing, Type.Missing);
xlApp.Quit();
}