使用 openXML 替换 Excel 中文本框中的文本
Replace text in textbox in Excel using openXML
我想 edit/change 文本框中 excel sheet 中的文本。我遍历了 sharedstringtable 中的所有条目,但找不到它。
var sharedStringTablePart = spreadSheet.WorkbookPart.GetPartsOfType<SharedStringTablePart>().First();
foreach (SharedStringItem ss in sharedStringTablePart.SharedStringTable.Elements<SharedStringItem>())
{
if (ss.InnerText == text)
{
//Do somethinhg
}
}
有人可以帮忙吗?
包含在文本框中的文本没有存储在共享字符串表中(我知道这很混乱)。希望这会有所帮助:
using (SpreadsheetDocument document = SpreadsheetDocument.Open(excelFile, true))
{
string sheetName = "Sheet1";
Sheet sheet = document.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>().Where(s => s.Name == sheetName).FirstOrDefault();
if (sheet == null)
{
// The specified worksheet does not exist.
return null;
}
string relationshipId = sheet.Id.Value;
WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(relationshipId);
var ocaElems = worksheetPart.DrawingsPart.WorksheetDrawing.Elements<OneCellAnchor>();
foreach (OneCellAnchor oneCellAnchor in ocaElems)
{
var shapes = oneCellAnchor.Elements<A.Shape>();
foreach (var shape in shapes)
{
var text = shape.TextBody.InnerText;
if(text == mytext)
{
//You found the text
}
}
}
}
我想 edit/change 文本框中 excel sheet 中的文本。我遍历了 sharedstringtable 中的所有条目,但找不到它。
var sharedStringTablePart = spreadSheet.WorkbookPart.GetPartsOfType<SharedStringTablePart>().First();
foreach (SharedStringItem ss in sharedStringTablePart.SharedStringTable.Elements<SharedStringItem>())
{
if (ss.InnerText == text)
{
//Do somethinhg
}
}
有人可以帮忙吗?
包含在文本框中的文本没有存储在共享字符串表中(我知道这很混乱)。希望这会有所帮助:
using (SpreadsheetDocument document = SpreadsheetDocument.Open(excelFile, true))
{
string sheetName = "Sheet1";
Sheet sheet = document.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>().Where(s => s.Name == sheetName).FirstOrDefault();
if (sheet == null)
{
// The specified worksheet does not exist.
return null;
}
string relationshipId = sheet.Id.Value;
WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(relationshipId);
var ocaElems = worksheetPart.DrawingsPart.WorksheetDrawing.Elements<OneCellAnchor>();
foreach (OneCellAnchor oneCellAnchor in ocaElems)
{
var shapes = oneCellAnchor.Elements<A.Shape>();
foreach (var shape in shapes)
{
var text = shape.TextBody.InnerText;
if(text == mytext)
{
//You found the text
}
}
}
}