app.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <appender name="FileAppender" type="log4net.Appender.FileAppender"> <file value="a.log"></file> <appendToFile value="true"></appendToFile> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="[%d]-%p:%c=>%m%n"></conversionPattern> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="[%d]-%p:%c=>%m%n"></conversionPattern> </layout> </appender> <root> <level value="DEBUG"></level> <appender-ref ref="FileAppender"></appender-ref> </root> <logger name="MyLogger"> <level value="DEBUG"></level> <appender-ref ref="FileAppender"></appender-ref> </logger> </log4net> </configuration>
Module1.vb
Imports System.Windows.Forms Imports System.IO Imports log4net Imports DocumentFormat.OpenXml Imports DocumentFormat.OpenXml.Packaging Imports DocumentFormat.OpenXml.Spreadsheet <Assembly: log4net.Config.XmlConfiguratorAttribute(Watch:=True)> Module Module1 Dim logger As ILog = log4net.LogManager.GetLogger(GetType(Module1)) <STAThread()> Sub Main() Dim OFD As New OpenFileDialog Dim Original As String Dim Target As String Dim WbP As WorkbookPart Dim Sht As Sheet Dim WsP As WorksheetPart Dim Shd As SheetData Dim Row As Row Dim Cell As Cell OFD.Filter = "Excel Document|*.xlsx" OFD.Multiselect = False OFD.ShowDialog() Original = OFD.FileName logger.Info("Original File Path :" & Original) Target = AppDomain.CurrentDomain.BaseDirectory & "Test.xlsx" logger.Info("Target File Path :" & Target) File.Copy(Original,Target,True) logger.Info("File Copied") Using SSD As SpreadsheetDocument = SpreadsheetDocument.Open(Target,True) logger.Info("Spreadsheet Document Open") WbP = SSD.WorkbookPart Sht = WbP.Workbook.Descendants(Of Sheet)() _ .Where(Function(S) S.Name = "Sheet1").FirstOrDefault() logger.Info("Sheet Id : " & Sht.Id.Value) WsP = WbP.GetPartById(Sht.Id) If Not WsP Is Nothing Then logger.Info("Get the WorksheetPart") Shd = WsP.Worksheet.Descendants(Of SheetData)().FirstOrDefault() Row = Shd.Descendants(Of Row)() _ .Where(Function(R) R.RowIndex.Value = 3).FirstOrDefault() logger.Info("Retrieve the Row") If Not Row Is Nothing Then logger.Info("Row exists") Cell = Row.Descendants(Of Cell)() _ .Where(Function(C) C.CellReference = "B3") _ .FirstOrDefault() logger.Info("Retrieve the Cell") If Not Cell Is Nothing Then logger.Info("Cell exists") Cell.CellValue.Text = "123456" Else logger.Info("Cell doesn't exist") Cell = New Cell Cell.CellReference = "B3" Cell.CellValue = New CellValue Cell.CellValue.Text = "123456" Row.Append(Cell) logger.Info("Append the cell") End If WbP.Workbook.Save() logger.Info("Save changes") Else logger.Info("Row doesn't exist") Row = New Row Row.RowIndex = 3 Cell = New Cell Cell.CellReference = "B3" Cell.CellValue = New CellValue Cell.CellValue.Text = "123456" Row.Append(Cell) logger.Info("Append the cell") Shd.Append(Row) logger.Info("Append the row") End If Else logger.Error("WorksheetPart doesn't exist") End If Console.WriteLine("Finished") Console.ReadKey() End Using End Sub End Module
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。