You can use your favorite social network to register or link an existing account:
Or use your email address to register without a social network:
Sign in with these social networks:
Or enter your username and password
Forgot your password?
Yes, please link my existing account with for quick, secure access.
No, I would like to create a new account with my profile information.
Tips
How-to
News
Videos
Stories
You may remember this graphic from my previous post:
It was totally staged. A fabrication.
Well, the PowerPoint templates are the original files - so it wasn't completely faked. But I added all of the text files back into the folder in order to create the image.
As I worked on the previous post, I realized that I should include an image that visually demonstrates what I needed to accomplish. Yet, by the time I wrote the post, I had already handed off those templates and all the (now unnecessary) text files had been deleted.
So how did I create this image, you may ask? Simple: I wrote code to reverse the process from the earlier post! The program below takes rows in an Excel workbook and generates text files from the data in the rows.
The programming is quite simple, once you understand how to create and use StreamWriter objects. When the workbook is opened, for each row of data, the code gets the filename from column B in the first spreadsheet in the workbook, replaces the PowerPoint template file extension (.potx) with the text file (.txt), opens a StreamWriter that creates the new text file, transfers the value from column C to the text file, and closes the text file.
Here's the code that I used. It is a workbook-level project using Visual Studio 2010, Visual Basic, .NET 4, and Excel 2010. (If you want to know what the workbook looks like, refer to my previous post.)
Imports System
Imports System.IO
Public Class ThisWorkbook
Private Sub ThisWorkbook_Open() Handles Me.Open
Dim MyWorkbook As Excel.Workbook = _
Me.Application.ActiveWorkbook
Dim MySheet As Excel.Worksheet = MyWorkbook.Worksheets(1)
Dim numRow As Integer = 6
Dim MyTextFileName As String
Dim currCell As Excel.Range = MySheet.Range("B" & numRow)
While Not currCell.Value = ""
MyTextFileName = currCell.Value
MyTextFileName = MyTextFileName.Replace(".potx", ".txt")
Using MyStreamWriter As New StreamWriter("C:\My Documents\ImportText_TEST\" & MyTextFileName)
MyStreamWriter.Write(MySheet.Range("D" & numRow).Value.ToString())
End Using
numRow = numRow + 1
currCell = MySheet.Range("B" & numRow)
End While
Finalize()
' This program used the following articles:
' http://msdn.microsoft.com/en-us/library/36b93480.aspx
' http://msdn.microsoft.com/en-us/library/6ka1wd3w.aspx
End Sub
End Class
Here's another version of the project, written in VBA:
Sub ExportToText() Dim MyWorkbook As Excel.Workbook Dim MyWorksheet As Excel.Worksheet Dim currCell As Excel.Range Dim MyTextFileName As String Dim numRow As Integer numRow = 6 Set MyWorkbook = Application.ActiveWorkbook Set MySheet = MyWorkbook.Sheets(1) Set currCell = MySheet.Range("B" & numRow) Do Until currCell.Offset(numRow, 0) = vbNullString MyTextFileName = currCell.Offset(numRow, 0).Value MyTextFileName = Replace(MyTextFileName, ".potx", ".txt") Call SetFileAndText(MyTextFileName, currCell.Offset(numRow, 2).Text) numRow = numRow + 1 Loop ' This program used the following article: ' http://msdn.microsoft.com/en-us/library/dd439413(office.12).aspx End Sub Sub SetFileAndText(fileName, fileText) ' Add Microsoft Scripting Library to Project references. Dim fso As New FileSystemObject Dim stream As TextStream Dim myText As String Set stream = fso.CreateTextFile("C:\My Documents\" & fileName) stream.Write fileText stream.Close End Sub
Sub ExportToText()
Dim MyWorkbook As Excel.Workbook
Dim MyWorksheet As Excel.Worksheet
Dim currCell As Excel.Range
Dim numRow As Integer
numRow = 6
Set MyWorkbook = Application.ActiveWorkbook
Set MySheet = MyWorkbook.Sheets(1)
Set currCell = MySheet.Range("B" & numRow)
Do Until currCell.Offset(numRow, 0) = vbNullString
MyTextFileName = currCell.Offset(numRow, 0).Value
MyTextFileName = Replace(MyTextFileName, ".potx", ".txt")
Call SetFileAndText(MyTextFileName, currCell.Offset(numRow, 2).Text)
Loop
' This program used the following article:
' http://msdn.microsoft.com/en-us/library/dd439413(office.12).aspx
Sub SetFileAndText(fileName, fileText)
' Add Microsoft Scripting Library to Project references.
Dim fso As New FileSystemObject
Dim stream As TextStream
Dim myText As String
Set stream = fso.CreateTextFile("C:\My Documents\" & fileName)
stream.Write fileText
stream.Close
To write this code, I consulted the following article:
--Eric Schmidt
Eric Schmidt is a programming writer for Visio.
Comments: (2) Collapse
HEY
Response to a comment on my previous post:
If you wanted to remove all of the spaces from the text before you wrote it to a new text file, you can use the Replace function (VBA) or String.Replace method (.NET) like what is used in the code samples above.
Comments: (loading) Collapse