代码搞到2022上后就提示变量无法引用非静态字段,什么成员声明无效的错误,求解,万分感谢!
当然了,你把代码直接写在类里面,肯定报错了。你得写在函数体里面。
using System;
using System.IO;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
namespace WinFormDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 选择要读取的文本文件
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Text Files (*.txt)|*.txt";
if (openFileDialog.ShowDialog() != DialogResult.OK)
{
return;
}
string filePath = openFileDialog.FileName;
// 读取文本文件内容
string textContent = File.ReadAllText(filePath);
// 创建 Excel 应用程序对象
var excelApp = new Application
{
Visible = false // 设置不显示 Excel 窗口
};
try
{
// 创建一个新的工作簿
var workbook = excelApp.Workbooks.Add(Type.Missing);
// 获取第一个工作表
var worksheet = (Worksheet)workbook.Worksheets[1];
// 根据换行符将文本内容分割成行
var lines = textContent.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
// 将文本内容写入工作表中
for (int i = 0; i < lines.Length; i++)
{
worksheet.Cells[i + 1, 1] = lines[i];
}
// 保存 Excel 文件
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Workbook (*.xlsx)|*.xlsx";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
workbook.SaveAs(saveFileDialog.FileName);
}
// 关闭工作簿和 Excel 应用程序
workbook.Close();
excelApp.Quit();
}
catch (Exception ex)
{
// 处理异常
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}