XSSF saving workbook - excel

I am using XSSF to create a workbook and continually getting this error:
Excel found unreadable content in 'thefile'.xlsx. Do you want to recover the contents of this workbook? If you trust the source of the workbook click Yes.
Excel then obligingly recovers it by removing all of the data and gives the detail error report:
Removed Records: Cell information from /xl/worksheets/sheet1.xml part
I am following these principles:
Ensure the row is created and not null.
Ensure the cell is created and not null.
Ensure the cell is the correct type.
Write to cell.
Is there something I am missing, eg is it permissable to have only certain cells written to in a row eg:
|null|null|write something here|null|null|
and the same with rows:
row with content
null
row with content
or do I need to ensure the all rows and columns are filled blank through the ranges used.
This is a complete mystery.

Related

How to fix #REF! error on COUNTIFS whenever reference spreadsheet changes

Is there a way to fix #REF! error on COUNTIFS formulas when the reference spreadsheet gets replaced? For instance, I receive a new master spreadsheet in a different file every month. Using COUNTIFS, I created a table to count with specific criteria based on a master spreadsheet. When I receive a new file, I make a copy of the master spreadsheet and move it to the original file with the table. The old spreadsheet is deleted. The new spreadsheet is under the same name. However, the reference in COUNTIFS breaks and #REF! error occurs.
If there isn't a change to the masterfile, can you just do a data dump and copy/paste the new data over the old? This will prevent the original sheet from being deleted and causing the reference error. Another option would be to copy/paste the formulas over to the new mastersheet so the formulas are preserved.

Copying data validation from one worksheet to another in an excel workbook

Ive got three worksheets setup.
The first contains reference data for my data validation list.
The second references the first sheet for a data validation drop down list. Something like sheet1!$a1:$a3
The problem arises when I try and copy the cell in sheet two that contains the data validation drop down list to a cell in sheet 3 where the destination cell is empty.
I'm trying to copy excel data validation but when copied across to sheet 3 it references the cells $a1:$a3 but doesn't maintain the reference to sheet1 where the data for the drop down list is actually stored.
How can I copy the data validation such that when it is copied to sheet 3 it still maintains the reference to sheet1 where the static data that makes up the list is.
If I am understanding you correctly, the pasted Data Validation list is not showing the corrrect information. In my workbook I needed multiple cells of DV to display info from the sheet labled "Parts" after they were copied to the sheet labled "Ascending".
What I had to do was select my newly, and thus far incorrectly, pasted material, go to the 'Data' tab and click into 'Data Validaion --> Data Validation' (drop down menu). From here I had to edit the source to reflect the origional sheet.
Was: =$C$4:$C$21
Edit: =Parts!$C$4:$C$21
This determines what sheet the data is being validated from. Once Ive done this, I can copy and paste a DV interal to whatever sheet I am working on.
For some reason naming the range from the origional sheet (Parts) did not carry over in the pasted DV. VLOOKUP and other formulas thankfully work fine.

Excel #ref error: Occurs when data is refreshed

I have made a connection in excel to another excel workbook, using the native functionality found under the data tab in excel. I imported the data into my "Main" excel workbook from the "Other" workbook by Selecting Data->existing connections and then opening the relevant sheet. This allowed me to link the data from my other workbook to my Main workbook.
My issue is when the data in the Other workbook is changed i received a #ref error in my Main workbook. The formulas i use on the imported data are pasted in a separate sheet (i tried pasting it next to the imported data as well). Note: i paste the formulas from row 1 - 500 for the respective column, so that when the data is imported the formula automatically populates the cell with the correct value. When i refresh the data (i.e when data has been changed in the Other workbook) It seems as the formulas i have copied down do not reference the correct cell anymore.
I have tried using an indirect but to no success.
This is what the formula i use looks like
=IF(INDIRECT("A"&ROW(#REF!))<>"",VLOOKUP(INDIRECT("A"&ROW(#REF!)),'Safex Codes'!$A$1:$H$1000,8,0),"")
However when the data is refreshed "SOME" of the rows in the column the formula is in return this formula
=IF(INDIRECT("A"&ROW(#REF!))<>"",VLOOKUP(INDIRECT("A"&ROW(#REF!)),'Safex Codes'!$A$1:$H$1000,8,0),"")
This occurs everytime i refresh the data. What is strange is that at the end of my data, hence the last time the formula is being called, the referencing to the correct row is completely off.
For example in row 28 i would expect the above formula to reference a28, however i receive
=IF(INDIRECT("A"&ROW(A24))<>"",VLOOKUP(INDIRECT("A"&ROW(A24))
I'll bet that you're having the same issue I was. When the number of rows in the data range changes, the unused cells previously populated with data are deleted. The formulas that referenced those deleted cells no longer have references to them because they've been deleted (hence the #REF errors).
You can change Excel's behavior with respect to handling new or unused rows using the Properties menu on the Data tab.
In that menu, take a look at the section labeled "If the number of rows in the data range changes upon refresh." I'm guessing you have the first option checked. Try the third option.

#REF Excel Error Add-in

I have an Excel Addin that generate data from database.
after loading data on sheet (sheet1) , I write excel functions(in sheet2)depending on that data , at the beginning it works great, but when I re-exrcute my function(sheet1)and then refresh the sheet2 I get the #REF error !!
=+MAX(SUM(Table1[[#ALL];[column1]]);SUM(Table1[[#ALL];[Column2]))
Invalid cell reference errors occur when a spreadsheet formula contains incorrect cell references. This happens most often when:
Columns or rows containing data used in the formula are accidentally deleted.
A formula has been moved or copied to another cell and the cell references are incorrect.
Data used in a formula has been moved, leaving the function or formula with incorrect cell references
You need to go through it and find the error I'm afraid manually.
Is generating data operation generate same line count every time? If second generating operation generates less then first generation, your function couldn't find lines at the end and generate #REF error.
Is the table name changing when you run the add-in to generate data from the database? Your formula references Table1, but it is possible that the table name changes when you re-generate it using the add-in.

Excel Table Data Connection Removes Cell Reference Upon Refresh

I have a Data Connection within my Excel Workbook (2007) which references a table within another Excel workbook. I have a cell that is referencing a date value within the last column header of the table. Each time the external workbook is updated and this date value changes, the cell reference in my workbook is broken and the cell shows #REF!
In case it helps I'm using a Database Query.
Connection string: {Replaced Path and Workbook Name}
DBQ=PATH\WORKBOOKNAME.xlsx;DefaultDir=PATH;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=1046;FIL=excel 12.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;
Command text: {Replaced Path}
SELECT * FROM `PATH\WORKBOOKNAME.xlsx`.`Main$` `Main$` ORDER BY `Main$`.IP
This is what the cell value in Column H looks like before the refresh:
This is what the cell value in Column H looks like after the refresh:
This last column header of this table contains a date value which will change each time the source workbook is updated (Volatile Date in source workbook). Technically this date field is not part of the other workbook table. However, the data connection is still pulling it and including it into the table on the main worksheet. I would not be able to modify the other workbook table and format without changing several other things due to other dependencies. I'm not sure of any other way to really reference a dynamic table header or correctly reference this cell so that the reference is not broken...
I'd like to do this within the cell formula without having to use a Macro if at all possible.
Any help is greatly appreciated. Thank You.
I guess the solution was as simple as using Indirect...
=INDIRECT("G1")
The header of the table should not change if you consider it used as a database field name. I can think a workaround as you directly give a range name to the date column in source book, for example, "Dates". Then in your other book, just make cells point to this range in source book, ie. make cells=[sourcebookname.xlsx]!Dates

Resources