C# 通过Linq更改Excel工作表的列名或属性

C# 通过Linq更改Excel工作表的列名或属性,c#,excel,linq,linq-to-excel,C#,Excel,Linq,Linq To Excel,我想知道如何将工作表的列名或属性提升为大写,而不知道有多少列或它们的内容是什么 我目前的代码如下: var excel = new ExcelQueryFactory(fileLocation); var dataSheet = from c in excel.Worksheet(0) select c; 最明显的方法是从变量数据表(您可以通过循环、硬编码或(理想情况下)通过更有效的方法(如果您知道的话)中分离相应的单元格(代表表的列名)。然后使用String#toUpper()方法将每个字符

我想知道如何将工作表的列名或属性提升为大写,而不知道有多少列或它们的内容是什么

我目前的代码如下:

var excel = new ExcelQueryFactory(fileLocation);
var dataSheet = from c in excel.Worksheet(0) select c;

最明显的方法是从变量
数据表
(您可以通过循环、硬编码或(理想情况下)通过更有效的方法(如果您知道的话)中分离相应的单元格(代表表的列名)。然后使用
String#toUpper()
方法将每个字符串值提升为大写,并将它们重新注入各自的单元格。

假设列名位于工作表的第一行,我建议使用LinqToExcel提供的
WorksheetNoHeader()
方法。然后,您可以检索第一行并遍历所有列名

下面是一个代码示例,说明了它可能是什么样子:

var excel = new ExcelQueryFactory(fileLocation);
var firstRow = excel.WorksheetNoHeader().First();

var columnNames = new List<string>();
foreach (var cell in firstRow)
  columnNames.Add(cell.ToString());
var excel=new ExcelQueryFactory(fileLocation);
var firstRow=excel.WorksheetNoHeader().First();
var columnNames=新列表();
foreach(第一行的var单元格)
columnNames.Add(cell.ToString());

您可以使用open Office库

下面的代码将为您提供大写的列文本(考虑到第一行有列名)

List columnNames=new List();
var worksheetPart=(worksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(sheet.Id);
var sheetData=worksheetPart.Worksheet.Elements().First();
foreach(sheetData.Elements()中的var r)
{
风险价值指数=0;
if(r.RowIndex==“1”)//列标题
{
foreach(r.Elements()中的变量c)
{
columnNames.Add(GetCellValue(spreadsheetDocument.WorkbookPart,c).ToUpper());
}
}
List<string> columnNames = new List<string>();
var worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(sheet.Id);
var sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();

foreach (var r in sheetData.Elements<Row>())
{
    var columnIndex = 0;
    if (r.RowIndex == "1") // Column Header
    {
        foreach (var c in r.Elements<Cell>())
        {
            columnNames.Add(GetCellValue(spreadsheetDocument.WorkbookPart, c).ToUpper());
        }
    }