用c#写一个将字符串存储到EXCEL表格的程序
时间: 2023-09-17 18:09:51 浏览: 103
以下是使用 C# 将字符串存储到 Excel 表格的示例代码:
```
using Excel = Microsoft.Office.Interop.Excel;
string data = "Hello, world!";
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add(Type.Missing);
Excel.Worksheet worksheet = workbook.ActiveSheet;
// 将字符串写入单元格 A1
worksheet.Cells[1, 1] = data;
// 保存 Excel 文件
workbook.SaveAs("example.xlsx");
// 关闭 Excel 进程
excelApp.Quit();
```
在使用此代码之前,需要先引用 Microsoft Office Interop Excel 组件。此外,需要注意的是,在使用完 Excel 进程后,需要手动调用 Quit() 方法来关闭 Excel 进程。
相关问题
利用c#编写一个控制台程序,要求读取一个Excel表格,并将表格中每列元素放置到同一个数组中
好的,我可以为你提供一个基本的程序示例,你可以根据自己的需求进行修改和优化。
首先,你需要引用一个第三方库来处理Excel文件,比如说EPPlus。你可以通过NuGet包管理器安装。
然后,在控制台应用程序的Main方法中,你可以编写以下代码:
```c#
using System;
using OfficeOpenXml;
namespace ExcelReader
{
class Program
{
static void Main(string[] args)
{
var filePath = @"C:\path\to\your\excel\file.xlsx";
var sheetName = "Sheet1"; // 表格的名称
using (var package = new ExcelPackage(new System.IO.FileInfo(filePath)))
{
var worksheet = package.Workbook.Worksheets[sheetName];
// 获取表格的行数和列数
var rowCount = worksheet.Dimension.Rows;
var colCount = worksheet.Dimension.Columns;
// 定义一个数组来存储表格中的数据
var data = new string[colCount];
// 读取每列的数据
for (int col = 1; col <= colCount; col++)
{
// 将当前列的所有单元格的数据合并成一个字符串
var colData = "";
for (int row = 1; row <= rowCount; row++)
{
var cellValue = worksheet.Cells[row, col].Value?.ToString() ?? "";
colData += cellValue + " ";
}
// 将当前列的数据存储到数组中
data[col - 1] = colData.Trim();
}
// 打印数组中的数据
Console.WriteLine(string.Join(Environment.NewLine, data));
}
Console.ReadKey();
}
}
}
```
在这个示例程序中,我们使用EPPlus库来读取Excel文件,并获取表格的行数和列数。然后,我们定义一个数组来存储表格中的数据,使用两个for循环来读取每列的数据,并将数据存储到数组中。最后,我们打印出数组中的数据。
你可以根据自己的需求进行修改和优化,比如说读取指定位置的Excel文件、将数据存储到数据库中等等。
你可以使用C#写一段解析DBC生成excel表格的程序吗,最好可以引用NPOI,并帮我解释每行代码的作用
当然可以!DBC文件是一种二进制文件格式,通常用于存储游戏中的数据。下面是一个使用C#解析DBC并将数据写入Excel表格的示例,代码中使用了NPOI库。
```csharp
using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
namespace DBCtoExcel
{
class Program
{
static void Main(string[] args)
{
string dbcFilePath = "example.dbc"; // DBC文件路径
string excelFilePath = "example.xlsx"; // Excel文件路径
// 打开DBC文件
FileStream dbcStream = new FileStream(dbcFilePath, FileMode.Open);
BinaryReader dbcReader = new BinaryReader(dbcStream);
// 解析DBC文件头部信息
uint signature = dbcReader.ReadUInt32(); // DBC文件签名
uint recordCount = dbcReader.ReadUInt32(); // 记录数
uint fieldCount = dbcReader.ReadUInt32(); // 字段数
uint recordSize = dbcReader.ReadUInt32(); // 记录大小
uint stringBlockSize = dbcReader.ReadUInt32(); // 字符串块大小
// 计算字符串块的偏移量
uint stringBlockOffset = (uint)dbcStream.Position + recordCount * recordSize;
// 创建Excel文件
XSSFWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Data");
// 写入表头
IRow headerRow = sheet.CreateRow(0);
for (int i = 0; i < fieldCount; i++)
{
string fieldName = ReadString(dbcReader, 0);
headerRow.CreateCell(i).SetCellValue(fieldName);
}
// 写入数据
for (int i = 0; i < recordCount; i++)
{
IRow row = sheet.CreateRow(i + 1);
// 解析每个字段的值
for (int j = 0; j < fieldCount; j++)
{
uint fieldType = dbcReader.ReadUInt32();
switch (fieldType)
{
case 0: // int
row.CreateCell(j).SetCellValue(dbcReader.ReadInt32());
break;
case 1: // float
row.CreateCell(j).SetCellValue(dbcReader.ReadSingle());
break;
case 2: // string
uint stringOffset = dbcReader.ReadUInt32();
string value = ReadString(dbcReader, stringBlockOffset + stringOffset);
row.CreateCell(j).SetCellValue(value);
break;
default:
throw new Exception("Unknown field type: " + fieldType);
}
}
}
// 保存Excel文件
FileStream excelStream = new FileStream(excelFilePath, FileMode.Create);
workbook.Write(excelStream);
// 关闭文件流
dbcStream.Close();
excelStream.Close();
Console.WriteLine("Done.");
}
static string ReadString(BinaryReader reader, uint offset)
{
long position = reader.BaseStream.Position;
reader.BaseStream.Seek(offset, SeekOrigin.Begin);
string value = "";
char c;
while ((c = reader.ReadChar()) != '\0')
{
value += c;
}
reader.BaseStream.Seek(position, SeekOrigin.Begin);
return value;
}
}
}
```
代码中使用了BinaryReader来读取DBC文件,通过解析头部信息得到记录数、字段数等基本信息,然后遍历每条记录,解析出每个字段的值,并将数据写入Excel表格中。其中ReadString函数用于读取DBC文件中的字符串数据。
阅读全文